查询生成器 laravel 和 select
Query builder laravel with and select
我想在结果中显示“cars.name”。
我需要使用“cars.name”值稍后订购
$this->model
->select("pieces.*", "cars.name")
->where('cars_id', $carId)
->with('cars')
->has('cars', '>=', 1);
我该怎么做?
您可以通过在 with()
中传递一个闭包函数来尝试这样做:
$this->model
->select("pieces.*")
->where('cars_id', $carId)
->with('cars'=> function ($query) {
$query->select('id','name');
}])
->has('cars', '>=', 1);
它只会 select 来自其他 table 的 ID 和用户名。
请记住,主键(在本例中为 id)需要是 $query->select() 中的第一个参数才能实际检索必要的结果。
您首先构建的只是一个查询,然后需要在服务器上检索它,使用 get(),您将看到错误消息。需要更多关于零件和汽车之间关系的信息来提供帮助。试一试 -
$this->model::whereHas('cars',function(builder $query)use($cardId){
$query->where('cars_id', $carId);})->has('cars', '>=', 1)->with('cars')->get();
then obtain cars name via denamic property of a relation
我想在结果中显示“cars.name”。 我需要使用“cars.name”值稍后订购
$this->model
->select("pieces.*", "cars.name")
->where('cars_id', $carId)
->with('cars')
->has('cars', '>=', 1);
我该怎么做?
您可以通过在 with()
中传递一个闭包函数来尝试这样做:
$this->model
->select("pieces.*")
->where('cars_id', $carId)
->with('cars'=> function ($query) {
$query->select('id','name');
}])
->has('cars', '>=', 1);
它只会 select 来自其他 table 的 ID 和用户名。
请记住,主键(在本例中为 id)需要是 $query->select() 中的第一个参数才能实际检索必要的结果。
您首先构建的只是一个查询,然后需要在服务器上检索它,使用 get(),您将看到错误消息。需要更多关于零件和汽车之间关系的信息来提供帮助。试一试 -
$this->model::whereHas('cars',function(builder $query)use($cardId){
$query->where('cars_id', $carId);})->has('cars', '>=', 1)->with('cars')->get();
then obtain cars name via denamic property of a relation