Моя модель стремилась загрузить множество вещей с помощью аксессуаров. Я хочу изменить это, чтобы указать методы доступа в каждом случае. Как включить в запрос такие средства доступа, чтобы получить базовые данные модели плюс данные средства доступа
Средства доступа были бы предварительно загружены:
protected $appends = [
'status',
]
Но если я избавлюсь от энергичной загрузки и хочу включить этот аксессор:
public function getStatusAttribute() {
return self::STATUS_ACTIVE;
}
Тогда я могу сделать это в соответствии с документацией:
$prod = \App\Product::find(736)->status;
Это работает, но я не получаю базовые данные модели.
Я не могу сделать: return $prod = \App\Product::find(736)->with('status')->first()
выдает ошибку: Call to undefined relationship [status] on model
Итак, как мне добавить такие методы доступа для включения в данные модели?
Edit:
Как прокомментировал Штауденмейр, я могу сделать \App\Product::find(736)->append('status');
Это решает проблему для единичных результатов. Но как мне добавить данные для многих результатов?
Ни append
, ни appends
не работают:
Это: \App\Product::whereIn([34, 55])->appends('status');
результаты в "Method appends does not exist.",
Я видел, что вы можете использовать "appends" on "-> paginate ()"
$products = \App\Product::whereIn([34, 55])
->paginate(12)
->appends('status');
Но это добавляет его в качестве строки запроса к URL. Очень странно - я хочу добавить его так же, как для одного результата в ответе json.