Проблема с отображением дополнительного поля сводной таблицы в Larvel Nova - PullRequest
0 голосов
/ 06 декабря 2018

Я использую Laravel Nova для своей админской стороны.У меня есть проблема, что в моей сводной таблице я добавил дополнительное поле.У меня есть таблица пользователей и таблица событий.Пользователь может иметь много событий, а событие может иметь много пользователей.Поэтому я создал сводную таблицу для 2 моделей.Но я хочу, чтобы статус события пользователя.Поэтому я добавил дополнительное поле для статуса в сводной таблице.

Моя проблема сейчас в Laravel Nova.В моем ресурсе событий у меня есть это:

BelongsToMany::make('Pending Users', 'pendingUsers', 'App\Nova\User'),

Это показывает другую таблицу для ожидающих клиентов.Я уже могу получить список пользователей по конкретному событию, но не могу показать в таблице статус события пользователя.Если пользователь одобрен или все еще ожидает рассмотрения.

Какая стратегия лучше всего подходит в моем случае?Я подумываю сделать модель для события и пользователя.

Я не знаю, как показать дополнительное поле сводной таблицы в BelongsToMany в Laravel Nova.Это просто показывает, что я добавил в User Resource of Nova.Как ID и имя.Но я не знаю, где будет отображаться статус события пользователя.Я хочу показать это в таблице BelongsToMany событий пользователям.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Необходимо убедиться, что вы определяете отношения в ОБА моделях, а затем сообщаете Nova, какие поля вы хотите показать следующим образом:

В вашем ресурсе событий:

BelongsToMany::make('Users')
->fields(function() {
    return [
        Text::make('status')
    ];
}),

В вашей модели события:

public function users()
{
  return $this->belongsToMany(User::class)->withPivot('status');
}

В вашей модели пользователя:

public function events()
{
  return $this->belongsToMany(Event::class)->withPivot('status');
}
0 голосов
/ 06 декабря 2018

Я получил эту работу, определив ->withPivot('filed name)' в отношениях, которые заставили меня сойти с ума в течение долгого времени.

BelongsToMany::make('your_relationship')
    ->fields(function () {
        return [
            Text::make('your_text'),
        ];
    })

Ваше отношение будет здесь примерно таким же, как я говорил ранее

public function users()
{
  return $this->belongsToMany(User::class)->withPivot('filed name');
}
...