私はLaravel Projectにhttps://github.com/nicolaslopezj/searchableを使用しています。関連レコードに基づくlaravelコレクションの結果をフィルタ
私はユーザーとの関係が多岐にわたるホテルオブジェクトを持っています。
私はこれを使用して関係を照会できます。
protected $searchable = [
'columns' => [
'hotels.nombre' => 10
],
'joins' => [
'hotel_user' => ['hotels.id' , 'hotel_id'],
'users' => ['hotel_user.user_id', 'users.id']
]
];
検索では、私はいくつかの特定のユーザーに属するすべてのホテルをフィルタリングするこのような何か(JSON形式)
[
{
"id": 3,
"nombre": "Paradisus Playa del Carmen La Esmeralda",
"url_foto": "uploads/hotel/3/1484747239.jpg",
"website_url": "https://www.melia.com/es/hoteles/mexico/playa-del-carmen/home.htm",
"updated_at": "2017-01-18 13:47:44",
"relevance": 60,
"users": [
{
"id": 1,
"first_name": "Alex",
"last_name": "Angelico",
"formatted_name": "Alex",
"company": "ConexionBIZ",
"title": "Director",
"picture_url": "https://media.licdn.com/mpr/mprx/0_FIUn3Wf5E4OMEwzR5feW3o7IoRSveSkR5W7d3oxczOM5BdPUwDws7EIJXvDEIE5c6HMeaSSFgb19",
"created_at": "2017-01-17 12:00:00",
"updated_at": "2017-01-18 13:50:19",
"pivot": {
"hotel_id": 3,
"user_id": 1,
"created_at": null,
"updated_at": null
}
}
]
},
を返します。 私が試した:
$result = \App\Hotel::search($request->get('q'))->with([
'users' => function($q) use ($user_id) {
$q->where('users.id', '<>', $user_id);
},
])->get();
をしかし、これは、関連するユーザーなしでホテルを返します。私はホテルから(ユーザーだけでなく)結果を削除する必要があります。
どうすればいいですか?
ありがとうございます!
素晴らしいが、おかげでたくさん –
ところで、私はLaravelに新たなんだと私は持っています良い文書を見つけるのが難しい。 Laravelのサイトは私には不十分だと思われますが、Laracastは始動には良いものでしたが、今はLaravel 5.3についての適切な文書や文献についてアドバイスをしていますか? TKS! –
私の知識の大半は、Laravelのドキュメントにあります。彼らのドキュメントを徹底的に一度読んで、より高いレベルの概要を得ることをお勧めします。そうすれば、ドキュメンテーションがそれをカバーするかどうかの一般的なアイデアを得ることができます。基本的に「ラーベール」という命名規則を学ぶと、ドキュメントの移動が容易になります。あなたにも質問があるなら、私を打つように気をつけてください。私はいつも仲間の開発者を喜んで支援しています!乾杯! –