如何在Laravel的控制器中获取查询结果ID?

时间:2017-07-25 15:57:10

标签: php mysql laravel laravel-5

我想从laravel获取房屋列表并在mysql上存放图片。但是,我有这个问题。使用以下流程:

$houses = Houses::query()
             ->orderBy('sort', 'ASC')
             ->take('6')
             ->get();

此查询,给我房屋清单。我需要使用我检索的房屋来拍照,这是我能想到的最好的:

$pictures = Housephotos::query()
            ->where('house_id', '=', $houses->house_id)
            ->get();
问题一:这个过程是否正确?
问题二:怎么做?

2 个答案:

答案 0 :(得分:0)

您需要在HousephotosHouse之间建立关系,以便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