我有一个模型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);
}
}
可以修改吗?
答案 0 :(得分:0)
在任何关系方法中依靠状态($this->id
)都会破坏渴望的加载(with)和查询关系的能力(whereHas)。
您的特定示例“可以”使用单个模型实例,但不适用于您尝试使用同一方法访问关系的方式