2016-12-01 63 views
0

ユーザーが名前を入力できる検索機能を作っています。関係を使って検索 - Laravel 5.3

これをヒット
public function api(Request $request) 
    { 
     $query = request()->get('query'); 

     $results = Listing::searchAndCache($query); 

     return $results; 
    } 

を::これはやってクエリイムある

public static function searchAndCache($query) 
    { 
     return self::where('name','like','%'.$query.'%')->where('live',true)->paginate(15); 
    } 

私もこのクエリと一緒に「場所」を検索する必要があり、問題が切り抜いたテーブルでそのです。モデル名はLocationです。私の質問は、どのように私はこのクエリにモデルの場所を添付したいですか?

ので、理想的に、私は、クエリのためにこれをしたいと思う:

public static function searchAndCache($query) 
    { 
     return self::where('name','like','%'.$query.'%')->where('region','like','%'.$query.'%')->where('live',true)->paginate(15); 
    } 
+0

ような何かをLaravelのrealationsを使用することができ、 'request() - > get( 'query);'ではなく、 '$ request-> get(' query);' – GabMic

+0

いいえ、私はこのように使用できます。 – David

+0

私はあなたができることは承知していますが、リクエストをインスタンス化しているので、なぜそれを使用しないのですか?ただ言って。 – GabMic

答えて

1

あなたがsearchable形質を使用することができ、検索のために。あなたはこれを行うことができます。

Listing::where('live',true)->search($query)->paginate(15); 

リストと場所との関係がある場合、あなたは `$のquery`で、ちなみにこの

Listing::where('live',true) 
     ->search($query) 
     ->location 
     ->search($query2) 
     ->paginate(15); 
関連する問題