2016-11-24 10 views
0

Laravelのクエリに関する質問があるので、すべての画像を保存するモデルとデータベースのテーブルをアップロードしています。次に、私のすべての活動を保存するアクティビティモデルとデータベーステーブルがあります。それぞれの活動のために私はイメージを求めています。Laravelのクエリのヘルプが必要

私のアクティビティモデルには「uploads_id」という列があります。私はこのようなクエリを書いた:

$activity_images = DB::table('uploads') 
->join('activities', 'uploads.id', '=', 'activities.upload_id') 
->where('uploads.id', '=', 'activities.upload_id') 
->get(); 

私は間違って何をしていますか?

答えて

0

joinwhere句に「参加」しています。 joinにuploads.idとactivities.upload_idを一度接続し、where節に再度接続します。

あなたは特別なupload.idを照会したい場合は、クエリは次のようになります。あなたはすべての画像が欲しい

$activity_images = DB::table('uploads') 
->join('activities', 'uploads.id', '=', 'activities.upload_id') 
->where('uploads.id', '=', '<yourUploadID>') 
->get(); 

場合は、where文を削除することができます。

$activity_images = DB::table('uploads') 
->join('activities', 'uploads.id', '=', 'activities.upload_id') 
->get(); 

あなたがjoinを使用する場合inner joinが使用されます。 テーブルアップロードのすべてのエントリが必要な場合は、leftJoinを使用することもできます。

$activity_images = DB::table('uploads') 
->leftJoin('activities', 'uploads.id', '=', 'activities.upload_id') 
->get(); 

問題を解決しますか?

+0

2番目の提案は私の問題を解決しましたありがとうございます。私はすでにURLのアクティビティの$ idを渡していましたが、upload_idの2番目のIDを追加しました。奇妙なURLが今でも動作します。 –