Laravel - Нужен ли контроллер и модель для каждой подобной таблицы? - PullRequest
0 голосов
/ 27 марта 2020

Я Laravel Noob (3 месяца) и новичок в Webdev и OOP, работаю над своим собственным проектом. Пожалуйста, извините, если мой вопрос является дубликатом, я искал (прочитал много), но не знал, какие термины использовать, и ни один из них не выглядел одинаково. У меня ушла неделя, чтобы написать вопрос. Надеюсь, это понятно.

Я работаю над игрой, в которой игроки (пользователи) делают ряд игр ; каждый набор игр - это ничья в различных раундах .
По сути, каждый раунд похож на отдельную игру / сессию, и каждый розыгрыш - это игрок, делающий несколько игр перед тем, как перейти к следующему круглый. Игроки получают только одну ничью за раунд. Количество пьес в розыгрыше зависит от раунда. Игроки рисуют в случайном порядке. Использование mysql.

Rounds table
ID |  ROUND_NAME    | TIME   |NUM_PLAYS |OTHER ATTRIBS |OTHER  |
1    first_round       1pm      4          blah 
2    second_round      2pm      12         blah 
3    third_round       3pm      6          blah 
…                   

Round01Draws
ID      |  PLAYER          |  PLAY 1    |  PLAY 2   |  PLAY 3   |  PLAY 4   |
draw_01   player_id (1st)    play-1       play-2      play-3      play-4
draw_02   player_id (2nd)    play-1       play-2      play-3      play-4
draw_03    ...               ...  

Round02Draws
ID      |  PLAYER          |  PLAY 1  |  PLAY 2  |  PLAY 3 |  PLAY 4 |  PLAY 5 ... 12
draw_01   player_id (1st)    play-1     play-2     play-3    play-4    play-5 ...play-12
draw_02   player_id (2nd)    play-1     play-2     play-3    play-4    play-5 ...play-12
draw_03    ...                ...

Пожалуйста, сообщите, если это неверно: На мой взгляд, каждый раунд др aws должен быть отдельной таблицей БД, как указано выше; У меня не может быть только одного большого стола, в котором перечислены все др aws (с round_id) из всех раундов, потому что было бы много нулей для раундов с меньшим количеством игр. Каждый раунд будет отображаться в своем собственном представлении (show.blade), показывая все др aws, сделанные в этом раунде.

Я думаю, что моя проблема в том, как пройти правильный (динамический c) класс рисования присвойте имя раунду через один RoundsController. php метод show () для отображения обоих на странице вместе для всех связанных раундов / dr aws вместо отдельного контроллера и модели рисования для каждого раунда (ie Round03Controller и Draw03. php). Имеет ли это смысл?

Очевидно, раунд имеет много Dr aws и каждая ничья принадлежит к раунду, но я не уверен, как использовать эти отношения , Кажется, я мог бы просто проигнорировать отношение и отобразить каждый Раунд в его show.blade и отобразить его Dr aws в качестве другого списка экземпляров объекта в том же виде. Это не похоже на реальную зависимость, но, возможно, отношения будут полезны позже, и я бы хотел узнать, как ее разработать / использовать в любом случае.

Вопросы

Нужно ли мне отдельный контроллер (расширяющий RoundsController) и модель (внешняя часть Draw) для каждого раунда, или я мог бы использовать один RoundsController и заставить метод show () отображать связанный Dr aws, возможно, с помощью динамических c имен из переменных GET, например, если id = 3, то $ dr aws = Draw03 :: class (что-то в этом роде). Я попытался сделать динамические c круглые имена и получил ошибку; и он попытался импортировать динамический c класс.

Будут ли отношения в родительских моделях работать в дочерних моделях, ie, если Round hasMany Dr aws будет Round01 hasMany Draws01 без явного указания в расширенном модели?

Я полагаю, что можно использовать «подстановочный знак»? параметры в соответствующих методах, но не уверен, как go об этом. Спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...