Опции PHP Laravel для выбора не отображают правильные значения - PullRequest
1 голос
/ 11 апреля 2019

Я хочу отобразить массив значений в качестве параметров внутри выбора, используя синтаксис laravel-nova.Мне удалось получить параметры, отображаемые внутри select, но значения этих параметров были такими, как

<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 ]

1 голос
/ 12 апреля 2019

Убедитесь, что get() подстраниц как Illuminate\Support\Collection и mapWithKeys(), чтобы переформатировать результаты. Используйте toArray() для предоставления формата, который Nova предполагает:

private function selectOptions(): array
{
    $subpages = DB::table('subpages')->get();
    return $subpages->mapWithKeys(function ($subpage) {
        return [$subpage->slug => $subpage->slug];
    })->toArray();
}

Вот так должен выглядеть возвращаемый результат:

[
    'my-article-1' => 'my-article-1',
    'my-article-2' => 'my-article-2',
    'my-article-3' => 'my-article-3',
]
0 голосов
/ 12 апреля 2019

Я предлагаю использовать следующие параметры:

->pluck('yourValue','yourKey');

Это делает полезными метки с вашими значениями.

...