2016-11-24 109 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条款中“加入”两次。您在joinwhere条款中再次连接uploads.id和activities.upload_id一次。

如果你要查询一个特殊的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(); 

如果使用joininner join将被使用。 如果您希望从表中上载所有条目,则还可以使用leftJoin

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

它解决了您的问题吗?

+0

第二个建议解决了我的问题谢谢。我已经通过URL传递了活动的$ id,但我为upload_id添加了第二个。奇怪的网址现在,但它的作品。 –