контроллер /create/id не допускает никаких данных — Laravel

#php #html #laravel

#php #HTML #laravel

Вопрос:

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

В настоящее время у employercommentscontroller меня есть функция создания

 public function create($id)
{
    $user = User::where('employee_id', $id)->get();
    return view('comments.create', compact('user'));
}
  

Вот маршрут к этому файлу контроллера

 Route::resource('/reviews', 'EmployerCommentsController');
  

Это делается для того, чтобы я мог отображать информацию о пользователе, о котором оставлен комментарий. Когда я перехожу к URL.
Когда я посещаю /reviews/create/2 , я получаю notfoundhttpexception . Что мне нужно изменить, чтобы иметь возможность передавать только идентификатор в мой метод create?

Ответ №1:

Вы можете использовать:

 Route::get('/reviews/create/{id}', 'EmployerCommentsController@create');
  

Для получения дополнительной информации: https://laravel.com/docs/5.1/routing

Комментарии:

1. Спасибо, я избегал вводить посторонние маршруты, но, похоже, это может быть единственным решением. Приветствую быстрый ответ!

2. @LiamS Приветствую! Если вам это нравится, вы можете выбрать его как лучший ответ.

Ответ №2:

Если вы не хотите создавать дополнительные маршруты и хотите использовать стандартный контроллер RESTful, вы можете просто создать ссылку с параметром GET:

 <a href="/reviews/create?id=2">Write a comment</a>
  

А затем получить этот параметр в контроллере:

 public function create()
{
    $id = request()->input('id');