Изменить значение атрибута модели Laravel - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть модель 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 голосов
/ 07 февраля 2019

Опираясь на состояние ($this->id) в любом методе отношений, вы нарушите нетерпеливую загрузку (с) и возможность запрашивать отношения (whereHas).

Ваш конкретный пример "может" работать с одним экземпляром модели, но не так, как вы пытаетесь получить доступ к отношениям в рамках того же метода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...