F
Filament3mo ago
MatXps

search relation from resource in table throw error as name mismatch

I have 2 models #Model Item public function favorites() { return $this->hasMany('App\Models\Favorite'); } #Model Favorite protected $table = 'item_user'; public function item() { return $this->belongsTo('App\Item'); } Database Table item id user_id otherfields... Table item_user id user_id item_id I created a Filament 'Favorite Resource' public static function table(Table $table): Table { return $table ->query(function (Item $query) { return $query->whereHas('favorites', function($query){ $query->where('user_id', '=', auth()->user()->id); }); }) ->recordUrl( fn (Item $record): string => "/listing/".$record->item_slug, shouldOpenInNewTab: true, ) ->columns([ Stack::make([ // Columns Tables\Columns\TextColumn::make('item_title') ->searchable(), Tables\Columns\TextColumn::make('item_price') ->money('CAD'), Tables\Columns\ImageColumn::make('attachments') ->label('Image') ->limit(2) ->circular() ->stacked() ->limitedRemainingText() ->defaultImageUrl(url('/images/placeholder.png')), Tables\Columns\TextColumn::make('favorite.user_id') ->searchable(),
// ]),
]) ... The error I get is when I try to search the table Illuminate \ Database \ QueryException SQLSTATE[42S22]: Column not found: 1054 Unknown column 'favorite' in 'where clause'
1 Reply
MatXps
MatXpsOP3mo ago
select count(*) as aggregate from items where exists ( select * from item_user where items.id = item_user.item_id and user_id = 31 ) and ( item_title like % test % or json_unquote(json_extract(favorite, '$."user_id"')) like % test % )
Want results from more Discord servers?
Add your server