2016-08-17 12 views
1

が、私はこのクエリを持っているところでテーブルを指定するとき:雄弁エラー句

$query->orWhereHas('s.name', function($q) use ($terms) { $q->whereIn('name', $terms); }); 

ウィル出力

Call to undefined method Illuminate\Database\Query\Builder::s() 

カテゴリが名前に属することを指定する必要があります。わからない場合は、あいまいなフィールドの存在を返すためです。私はモデル

$query->get(['products.id', 'products.name', 'products.front_image', 'products.back_image', 'products.slug', 'm.slug as model_slug']) 

から単一のフィールドを選択する必要があるため

私はモデルのテーブルに参加していた理由は、どのように私はこのエラーを取得することなく、where句でテーブルを指定することができますか?

答えて

0

whereHasは、リレーションを照会する方法です。最初の引数は、モデル内のリレーションシップメソッドの名前に対応する必要があります。あなたの場合、QueryBuilderはProductモデルのメソッドproducts()を呼び出そうとしています。

名前でレコードを照会する場合は、where()メソッドを使用できます。