遍历每个模型记录以查看关系模型集合

时间:2018-02-03 20:18:45

标签: laravel-5.5

我有合同模型,如下所示

class ContractModel extends Model
{
    public $table = 'tblcontracts';
    public $primaryKey = 'Contract_ID';
    public $timestamps = false;

    public function Payments() {
        return $this->hasMany("App\Models\PaymentModel", "Payment_ID", "Payment_ID");
    }
}

我必须从上面付款方式的关系记录列表中获取每个合同模型的最新付款日期。

我在谷歌搜索它并找到 Accessors Mutators

更新 - 1

我在上面的Model类中创建了一个类似下面的方法。

public function getPaymentsNameAttribute($value)
{
    dd($value);
}

我假设当这段代码执行ContractModel::all();时,控件逐个转到每个记录的模型类,因此我可以在ContractModel记录的每个实例中进行更改,但看起来像这样没有用。

AM我错过了什么?

1 个答案:

答案 0 :(得分:1)

您可以在doSomething()模型中创建latestPayment关系,如下所示:

ContractModel

现在,当您构建查询public function latestPayment() { return $this->hasOne("App\Models\PaymentModel", "Payment_ID", "Payment_ID")->orderBy('payment_date ', 'desc'); } 时,您将获得$contractModels = ContractModel::with('latestPayment')->get();每个PaymentModel的最新付款日期。之后,您可以循环收集。
例如:

ContractModel