php - Laravel 获取相关模型的相关模型

标签 php rest laravel laravel-4 eloquent

我有一个与车辆关联的 RepairRequest 模型。

class RepairRequest extends \Eloquent {
    public function vehicle() {
        return $this->belongsTo('Vehicle');
    }
}


class Vehicle extends \Eloquent {
    public function requests() {
        return $this->hasMany('RepairRequest');
    }
}

我想获取与给定 RepairRequest 关联的车辆的所有 RepairRequests,所以我这样做了

return RepairRequests::find($id)->vehicle->requests;

这很好用。

但是,RepairRequests 有 RepairItems:

// RepairRequest class
public function repairItems() {
    return $this->hasMany('RepairItem', 'request_id');
}

// RepairItem class
public function request() {
    return $this->belongsTo('RepairRequest', 'request_id');
}

我也想回来,所以我做了

return RepairRequests::find($id)->vehicle->requests->with('repairItems');

但我得到以下异常:

Call to undefined method Illuminate\Database\Eloquent\Collection::with()

我该如何编写才能使返回的 json 包含 RepairRequest json 中的 RepairItems?

最佳答案

在集合上使用load 方法加载相关模型:

return RepairRequests::find($id)->vehicle->requests->load('repairItems');

基本相同:

$repairRequest = RepairRequests::with('vehicle.requests.repairItems')->find($id);

return $repairRequest->vehicle->requests;

关于php - Laravel 获取相关模型的相关模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24553196/

相关文章:

php - 有很多表的 cakephp 查询

php - 404 not found - CSS 和 JS 当 url 以/结尾时

php - 预期响应代码 250 但得到代码 "",消息 ""

php - 如何在 laravel 中不刷新页面的情况下从模态窗口将值附加到下拉列表???

git - 部署 Laravel 升级 - Composer 更新或 Composer 安装

php - 在 PHP 中对数组进行排序的最佳方法

php - 如何使用代码点火器框架在查询 php 中将动态对象转换为数组

rest - REST API 本地化

spring - 使用 Spring RestTemplate 绕过主机验证访问 HTTPS Rest api

rest - 在 Jersey 调用 SOAP