Я занимаюсь разработкой веб-приложения с использованием Laravel. Для админки я использую Laravel Nova. Сейчас я пытаюсь использовать данные из таблицы, которая связана с другой таблицей. Чтобы быть понятным, см. Мою структуру базы данных ниже.
items
=====
id
name
price
sub_category_id
sub_categories
==============
id
name
parent_category_id
parent_categories
=================
id
name
В Nova я пытаюсь добиться того, чтобы я хотел отобразить имя родительской категории элемента на странице индекса / списка элементов. Первое, что я не хочу создавать пользовательский атрибут что-то вроде этого в модели
protected $appends = [
'parent_category_name'
];
function getParentCategoryNameAttribute()
{
//code here
}
Следовательно, я могу придумать два решения. Первое решение - использование отношения HasThrough. Но я не могу найти это в Новой. Так что я не могу его использовать. Второе решение - переопределение значения поля при рендеринге. Как то так.
Text::make("fieldname")->fillUsing(function($request, $model, $attribute, $requestAttribute) {
//$model->sub_category->parent_category - then I can return a value
return "Parent category name";
})->onlyOnIndex()
Но приведенный выше код не работает. Итак, что будет лучшим подходом для обработки сквозных отношений в Nova?