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

时间:2019-09-18 17:22:17

标签: 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个日志记录实例,前两个包含状态名称,第三个不包含状态名称。我认为这可能与它不起作用有关,但不知道是什么原因造成的。

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

Text::make('State', function() { return $this->state->name; })

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