Laravel Nova BelongsToMany несколько раз одна и та же модель - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть следующая схема:

mysql> describe event_state;
+---------------------+---------------------+------+-----+---------+----------------+
| Field               | Type                | Null | Key | Default | Extra          |
+---------------------+---------------------+------+-----+---------+----------------+
| id                  | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| event_id            | bigint(20) unsigned | NO   | MUL | NULL    |                |
| state_id            | bigint(20) unsigned | NO   | MUL | NULL    |                |
| gender              | varchar(191)        | NO   |     | NULL    |                |
| value               | decimal(8,2)        | NO   |     | NULL    |                |
| value_type          | varchar(191)        | NO   |     | NULL    |                |
| display_measurement | varchar(191)        | NO   |     | NULL    |                |
| deleted_at          | timestamp           | YES  |     | NULL    |                |
| created_at          | timestamp           | YES  |     | NULL    |                |
| updated_at          | timestamp           | YES  |     | NULL    |                |
+---------------------+---------------------+------+-----+---------+----------------+
10 rows in set (0.01 sec)



mysql> describe events;
+-------------+---------------------+------+-----+---------+----------------+
| Field       | Type                | Null | Key | Default | Extra          |
+-------------+---------------------+------+-----+---------+----------------+
| id          | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| name        | varchar(191)        | NO   | UNI | NULL    |                |
| category_id | bigint(20) unsigned | NO   | MUL | NULL    |                |
| created_at  | timestamp           | YES  |     | NULL    |                |
| updated_at  | timestamp           | YES  |     | NULL    |                |
| deleted_at  | timestamp           | YES  |     | NULL    |                |
+-------------+---------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)

mysql> describe states;
+------------+---------------------+------+-----+---------+----------------+
| Field      | Type                | Null | Key | Default | Extra          |
+------------+---------------------+------+-----+---------+----------------+
| id         | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| name       | varchar(191)        | NO   | UNI | NULL    |                |
| created_at | timestamp           | YES  |     | NULL    |                |
| updated_at | timestamp           | YES  |     | NULL    |                |
| deleted_at | timestamp           | YES  |     | NULL    |                |
+------------+---------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

В таблице event_state у меня могут быть одинаковые event_id и state_id с присоединенным разным полом (Male или Female). Larvel Nova НЕ позволяет этого через BelongsToMany в ресурсе.

  1. Есть ли способ сделать эту работу в laravel Nova (он говорит, что он уже подключен)
  2. Если нет, есть ли лучший способ выполнить то, что я хочу сделать?
...