2016-12-31 9 views
0

私はテーブルのリストと都市を持っており、リストはhasOneの都市関係を持っています。 2つの入力があり、最初の入力はリストの名前を表示し、2番目の入力は都市の名前を表示することです。 リスティングテーブルには列名とcity_idがあります。 都市表には列IDと名前があります。列の外部キーを持つテーブルからのクエリ

目的は都市入力でリストを探すことです。

これはunknowエラー列を与えるこの

$listings = Listing::where('name', 'LIKE', '%'. $request->search. '%')->where('%'. $request->location. '%', 'LIKE', function($query){ 
      $query->where(DB::raw('cities.name')); 
     })->paginate(10); 

のような現在のクエリを見

SQLSTATE [42S22]:見つからないカラム:1054不明な列 '%都市入力%' 句」で'(SQL:SELECT COUNT(*)骨材として%LIKE nameが入力%をリストlistingsからと%city input% LIKE(cities.nameがnullであるところ*選択))

これを修正する方法はありますか?

答えて

1

私はあなたが必要としているのはwhereHasだと思います。

あなたの関係は、 "都市" と呼ばれていると仮定:

$listings = Listing::where('name', 'LIKE', '%' . $request->search . '%') 
    ->whereHas('city', function($query) use($request) { 
     $query->where('name', 'LIKE', '%' . $request->location . '%'); 
    }) 
    ->paginate(10); 
関連する問題