Как реализовать приложение для региона в контроллерах Laravel - PullRequest
0 голосов
/ 10 октября 2019

Я использую Laravel 6.

Я создаю приложение, в котором есть Файлы (не файл, сохраненный на вашем рабочем столе или в хранилище). У меня есть модель файла, контроллер FileController и файлы в DB с id, user_id (как это принадлежит пользователю) и данные (которые являются столбцом JSON).

Для моего приложения файл можетиметь разные поля, основанные на юрисдикции, которые нужно захватывать (через формы на шаблонах блейдов) и управлять через контроллер (в основном через show, edit, update).

Вполне вероятно, что у меня много юрисдикций(представьте страну, штат и, возможно, город) версии Файлов с соответствующими полями, которые необходимо захватить, отобразить, изменить и т. д.

Во многих из этих Файлов, особенно если они находятся в одной стране,поля (столбцы / ключи), которые повторяются

В настоящее время у меня есть один контроллер, и когда дело доходит до редактирования файла, его отображения или обновления файла, у меня начинает появляться логика, которая определяет страну или состояние и модифицирует логику или представление.

Первоначально я думал, что сделаю что-то вроде этого

File - model
FileController - root controller
- @edit calls FileControllers/country/state/FileController@edit.php
- @show calls FileControllers/country/state/FileController@show.php
- @update will reference FileControllers/country/state/FileController@update
Files.view.blade - root view for Show
Files.edit.blade - root view for Edit

, но у меня есть ощущение, что это очень быстро выйдет из-под контроля, особенно если некоторые записи Файла имеют похожие поля, представления,типы данных, которые я буду захватывать. Не существует таких, которые бы действовали в разных юрисдикциях, поэтому я выбрал хранилище JSON в базе данных mysql.

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

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Я хотел записать другой ответ, если другой разработчик идет по этому пути и ищет ответ.

Не уверен, что это лучший способ, но я решил вызвать метод изнутрикорневой контроллер.

Итак

Route::patch('/file','FileController@update');

В FileController метод update () имеет

app()->call('App\Http\Controllers\\'.$country.'\FileController@Update')

Я читал, что это не лучший способ сделать это, ноне нашли конкретных альтернатив.

0 голосов
/ 11 октября 2019

Я решил в целях продвижения моего проекта настроить контроллеры и представления, специфичные для региона, и использовать Web.php для обработки таких маршрутов, как

Так что я буду работать:

php artisan make:controller /us/ny/FileController

Route::get(‘file/edit,’$country.’/‘.$state.’/FileController@edit’);

Имея некоторый код, чтобы обнаружить, что они существуют.

Я по-прежнему открыт для обратной связи и советов, так как я рад рефакторингу с лучшим способом управления им, особенно с любыми повторно используемыми частями.

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