Сообщество,
Я хочу иметь два выбора из одной таблицы в Nova.Должно быть возможно выбрать одно Местоположение в Laravel Nova как start_location и выбрать одно Местоположение как end_location .
У меня есть Действия Модель / Таблица с start_location и end_location .
Кроме того, у меня есть Местоположение Модель / Таблица.
Activities - Table
---------------------------------------------------
id | start_location_id | end_location_id
---------------------------------------------------
1 | 1 | 1
2 | 1 | 2
Location - Table
---------------------------------------------------
id | city
---------------------------------------------------
1 | Berlin
2 | Paris
Проблема
Как я могу настроить здесь «множественные» отношения «один ко многим»?
Моя проблема в том, что я не знаю, как сопоставить местоположение с действиями.start_location_id AND activity.end_location_id.
Особенно, как выбрать два местоположения в Laravels Nova.
Возможное решение?
Activities.php (модель)
public function start_location() {
return $this->hasOne(Location::class);
}
public function end_location() {
return $this->hasOne(Location::class);
}
Location.php (модель)
public function start_location() {
return $this->hasMany(Activities::class, start_location_id);
}
public function end_location() {
return $this->hasMany(Activities::class, end_location_id);
}
Location.php - ресурс Nova
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Text::make('City'),
BelongsToMany::make('Activities', 'location_start'), // ?
BelongsToMany::make('Activities', 'location_end') // ?
];
}
Activities.php - ресурс Nova
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Text::make('Title'),
Trix::make('Body'),
HasOne::make('Location', 'location_start'), // ?
HasOne::make('Location', 'location_end'), // ?
];
}
Возможноесть более простой подход?
Заранее спасибо!