修改Laravel模型的属性值

时间:2019-02-07 12:25:43

标签: php laravel model

我有一个模型Order和一个模型Store

每当我想通过商店调用订单模型时,

$order = Order::with('store')->first();

我想按以下方式更改商店属性之一。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\OrderPoint;

class Order extends Model
{
    public function store()
    {
        $order_id = $this->id;
        $location = OrderPoint::where('order_id', $order_id)->first();
        if ($location)
        {
             // DO something that location value is changed on the 
             // store
             $this->store->location = $location;

        }
        return $this->belongsTo(Store::class);
    }
}

可以修改吗?

1 个答案:

答案 0 :(得分:0)

在任何关系方法中依靠状态($this->id)都会破坏渴望的加载(with)和查询关系的能力(whereHas)。

您的特定示例“可以”使用单个模型实例,但不适用于您尝试使用同一方法访问关系的方式