如何在 Laravel Nova 中使用关系字段之外的关系数据?
How to use relationship data outside of relationship field in Laravel Nova?
我想弄清楚如何用 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('State', function() {
return $this->state->name;
})
至于对 fields
函数的多次调用,答案与问题有关:你的 Nova 文件夹中是否有另一个 Resource
与我们正在讨论的 Resource
? 如果是这样,这就是为什么 -- 它需要调用 fields
才能正确显示它。您可以检查以下查询字符串参数以获得更多信息:viaResource
、viaResourceId
和 viaRelationship
.
我想弄清楚如何用 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('State', function() {
return $this->state->name;
})
至于对 fields
函数的多次调用,答案与问题有关:你的 Nova 文件夹中是否有另一个 Resource
与我们正在讨论的 Resource
? 如果是这样,这就是为什么 -- 它需要调用 fields
才能正确显示它。您可以检查以下查询字符串参数以获得更多信息:viaResource
、viaResourceId
和 viaRelationship
.