我正在使用Laravel开发Web应用程序 . 对于管理面板,我使用的是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关系 . 但我在Nova中找不到它 . 所以,我不能用它 . 第二种解决方案是覆盖渲染上的字段值 . 像这样的东西 .
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中的完成关系的最佳方法是什么?
1 回答
假设您已正确定义了关系
sub_category
和parent_category
.在
Item
模型中定义关系,如下所示然后在
Item
资源中使用它,如下所示 .