2017-05-16 13 views
0

私はこのライブラリを全文検索として実装しました。Laravel searchy to relationship関係を検索する

https://github.com/TomLingham/Laravel-Searchy

誰もが関係テーブルを検索する方法を知っていますか。例えばのための

:名前のステータスモデルの整数およびリファレンスとして

アプリケーションモデルストアのステータス。ステータスモデルで

application_status = 1 

id:Name 
1:Approve 
2:Reject 

サンプルコード:

Searchy::applications('status')->query('Approve')->get(); 
+0

具体的にお聞かせください。あなたはジョインをすることを意味しますか?または寛容な関係を使用して、そしてどこですか? – fubar

+0

こんにちは@fubar、私は私の質問を編集しました – Najmi

答えて

0

あなたは私が知っ二つの方法でモデルの関係を照会することができます。

// Use sub query with count 
$applications = Application::whereHas('status', function ($query) { 
     return $query->where('name', 'Approve'); 
    }) 
    ->get(); 

// Use join (if one-to-many or many-to-many, remember group by) 
$applications = Application::select('applications.*') 
    ->join('statuses', 'application.status_id', '=', 'status.id') 
    ->where('statuses.name', 'Approve') 
    ->get(); 

があなたのパッケージで非常に高いレベルの外観を持っていたので、私はすぐにあなたがあなたの質問(下)の例の構文を使用してのいずれかに統合する方法を見ることができません。あなたのパッケージのドキュメントから

Searchy::applications('status')->query('Approve')->get(); 

、この構文は、それが実際に関係だのに対しstatusは、Application上のフィールドであることを示唆しています。私は値を照会する方法を内部的に決めることができるようにするために何らかの区別をする必要があると思います。