laravel - 如何在 Laravel Nova 中的关系字段之外使用关系数据?

标签 laravel laravel-nova laravel-6

我试图弄清楚如何使用 Laravel Nova 做一些看似简单的事情,但我无法弄清楚。

我想要做的是在文本字段中引用关系数据。我在 Nova 中看到,并了解如何通过 HasOne、HasMany ... 外观引用关系。但我想做的是获取这样的关系数据:

Text::make('State', $this->state->name) 

这不起作用,我在尝试调试时注意到 Nova 资源中的每个函数似乎都运行了多次。这是我添加的日志记录:

public function fields(Request $request) {
    logger($this->state->name)
}

当我这样做时,有 3 个日志记录实例,前 2 个包含状态名称,第三个不包含。我认为这可能与它不起作用有关,但不知道是什么原因造成的。

提前感谢您的帮助!

最佳答案

有一种简单的方法可以将关系数据放入 Nova Text 字段,只需使用闭包即可:

Text::make('状态', function() { 返回$this->状态->名称; })

至于多次调用 fields 函数,答案与以下问题有关:您的 Nova 文件夹中是否还有另一个 Resource与我们正在讨论的Resource相关吗?如果是这样,这就是为什么——它需要调用fields才能正确显示它。您可以检查以下查询字符串参数以获得更多信息:viaResourceviaResourceIdviaRelationship

关于laravel - 如何在 Laravel Nova 中的关系字段之外使用关系数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57997938/

相关文章:

javascript - Laravel Nova 覆盖 vue 组件导致 [Vue warn] : Error compiling template

php - 如何在 Laravel Blade 中将多个子行数据与父行一起添加

php - Laravel 6 数据库连接错误。用户访问被拒绝

php - Laravel 嵌套预加载约束

php - 如何使用 DB::insert 作为预处理语句 LARAVEL

arrays - laravel array_map 得到错误 "array_map(): Argument #2 should be an array"

javascript - 需要帮助循环使用 Ajax 和 Laravel 中从数据库获取的 Json 数据响应内容

laravel - 如何在 Laravel Nova 中忽略数据库操作中的字段

Laravel nova - 使用 Action 允许多次下载

mysql - 如何级联删除多态表?