选择的PHP Laravel选项无法呈现正确的值

时间:2019-04-11 12:50:06

标签: php laravel laravel-nova

我想使用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;
}

我在做什么错了?

2 个答案:

答案 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');

这可以为您的值添加有用的标签。