我想从laravel获取房屋列表并在mysql上存放图片。但是,我有这个问题。使用以下流程:
$houses = Houses::query()
->orderBy('sort', 'ASC')
->take('6')
->get();
此查询,给我房屋清单。我需要使用我检索的房屋来拍照,这是我能想到的最好的:
$pictures = Housephotos::query()
->where('house_id', '=', $houses->house_id)
->get();
问题一:这个过程是否正确? 答案 0 :(得分:0)
您需要在Housephotos
和House
之间建立关系,以便Housephotos中有house_id。如果是这样,您可以使用房屋ID来检索房屋ID:
假设你已经拥有房屋,那么你可以拥有:
$pictures = Housephotos::whereIn('house_id', '=', $houses->pluck('id')->toArray())
->get();
这将为你提供房屋照片。
答案 1 :(得分:0)
添加与Houses的关系:
.navbar > li{
color: red;
}
现在您可以轻松地获得照片:
class Houses extends Model
{
public function photos()
{
return $this->hasMany(Housephotos::class);
}
}
问题在于,选择查询将运行n次(对于此示例,为5次)。
如果您向查询添加$houses = Houses::query()
->orderBy('sort', 'ASC')
->take('6')
->get();
foreach ($houses->photos as $photo) {
echo $photo->id;
}
,那么laravel将运行单个with
查询来获取图片:
in