Skip to content

Instantly share code, notes, and snippets.

View A909M's full-sized avatar
:electron:

Assem Alwaseai A909M

:electron:
View GitHub Profile
ุนุงุตู… ููŠ ุงู„ุงู…ุณ ูŠุชุนู„ู… ุจุฑู…ุฌุฉ
ูˆุงู„ูŠูˆู… ูŠูุฑุถู‡ุง ููŠ ุงู„ูˆุงู‚ุน ูุฑุถ
ู…ุงุจุด ูƒูˆุฏ ู…ุฑ ุนู„ูŠู‡ ูˆู…ุง ุชุฑุฌู…ู‡
ูˆู„ุง ู…ูˆู‚ุน ุงู„ุงูˆู‚ุงุณู‡ ุทูˆู„ ูˆุนุฑุถ
ูˆุงุตุจุญ ุงู„ุจุฑู†ุงู…ุฌ ููŠ ุซูˆุงู†ูŠ ูŠู…ุบุฌู‡
ูˆุนู‚ุจู‰ ู„ู…ุง ูŠู‚ุฑุถ ุงู„ุจู†ูƒ ู‚ุฑุถ
@A909M
A909M / SearchTranslatableField.php
Created October 25, 2024 13:37
This trait provides a search scope for models with JSON fields containing Arabic text, adding support for common Arabic character variations (like 'ู‡' vs. 'ุฉ') to improve search accuracy. Usage:
<?php
namespace App\Traits;
use Illuminate\Database\Eloquent\Builder;
trait SearchTranslatableField
{
public function scopeSearchByTranslatableField(Builder $query, string $value, string $field = 'name'): Builder
{
@A909M
A909M / filament-hiding-records-in-table-until-filtered-or-searched.php
Last active May 2, 2025 17:02
If you have too many records in a single table to show immediately, you can hide them until a filter/search is applied.
->modifyQueryUsing(function (Builder $query, $livewire) {
$hasFilters = collect($livewire->tableFilters)
->filter(fn($filter) => !empty($filter['values']))
->isNotEmpty();
return ($livewire->hasTableSearch() || $hasFilters) ? $query : $query->whereRaw('1 = 0');
})