我想使用laravel-nova语法在选择内显示值数组作为选项。我设法将选择内的选项呈现出来,但是这些选项的值就像
<option value="2"></option>
<option value="1"></option>
<option value="0"></option>
我想要的是文本作为值。
这是我到目前为止得到的:
Select::make('Slug')->options(
$this->selectOptions()
)
public function selectOptions()
{
$urls = DB::table('subpages');
$slugs = $urls->pluck('slug');
return $slugs;
}
我在做什么错了?
答案 0 :(得分:1)
确保将get()
和Illuminate\Support\Collection
这两个子页面分别格式化为结果。使用mapWithKeys()
提供Nova假定的格式:
toArray()
这是返回结果的样子:
private function selectOptions(): array
{
$subpages = DB::table('subpages')->get();
return $subpages->mapWithKeys(function ($subpage) {
return [$subpage->slug => $subpage->slug];
})->toArray();
}
答案 1 :(得分:0)
我建议使用以下参数:
->pluck('yourValue','yourKey');
这可以为您的值添加有用的标签。