маршрутизация laravel в web.php для самореферентной таблицы - PullRequest
0 голосов
/ 14 октября 2018

Я использую laravel 5.6. У меня есть собственная таблица с именем "directory"

$table->increments('id');
$table->integer('parent_id')->unsigned()->default(null)->nullable();
$table->string('folder', 64);
$table->timestamps();
$table->unique(['parent_id', 'folder']);

Для корневого каталога "parent_id" будет нулевым

Как создать маршрут ресурсав web.php?Что-то вроде:

Route::resource('directory.childdirectory','DirectoryController')->name('directory', 'dir_root_id', 'dir_child_id');

Есть ли какой-нибудь пример CRUD для самореференциальных отношений?

Как создать маршрут ресурса в web.php для самореференциальных отношений?

1 Ответ

0 голосов
/ 15 октября 2018

Короче говоря, проблема для таблицы, ссылающейся на себя, заключалась в том, как передать идентификатор «parent» и «child» контроллеру.Я сделал это, определив контроллер ресурсов в таблице маршрутизации (web.php для laravel 5.6) с дополнительным параметром {id}

Route::resource('{id}/directory', 'directoryController');

Команда php artisan route: list будет выглядеть как код ниже, где{id} является родительским каталогом, а {directory} является дочерним каталогом

| POST      | {id}/directory                     | directory.store
| GET|HEAD  | {id}/directory                     | directory.index
| GET|HEAD  | {id}/directory/create              | directory.create
| GET|HEAD  | {id}/directory/{directory}         | directory.show
| PUT|PATCH | {id}/directory/{directory}         | directory.update
| DELETE    | {id}/directory/{directory}         | directory.destroy
| GET|HEAD  | {id}/directory/{directory}/edit    | directory.edit
...