Как передать параметр в маршрут - PullRequest
0 голосов
/ 17 апреля 2019

Итак, у меня есть это для каждого "проекта"

@foreach ($projects as $project)
        <tr>
            <td>{{$project->proj_id}}</td>
            <td>{{$project->proj_title}}</td>
            <td>{{$project->proj_desc}}</td>
            <td>{{$client->find($project->client_id)->client_name}}</td>
            <td>{{$project->user->name}}</td>
            <td>{{$project->created_at}}</td>
            @if (Auth::user()->role=='admin')
            <td>
                <div class="dropdown">
                    <button class="btn btn-danger dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action</button>                                                  
                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                    <a class="dropdown-item" href="{{route('projects.edit',$project)}}">Edit</a>

                    <form method="POST" action="{{route('projects.destroy',$project)}}" onsubmit="return confirm('Are you sure you want to delete this?')">
                        @method('DELETE')
                        @csrf
                    <button class="dropdown-item" type="submit">Delete</button>
            @endif
    ------------>       <a class="dropdown-item" href="{{route('projects.tasks',$project)}}">tasks</a>

                    </form>
                 </div>
            </div>
            </td>


        </tr>
        @endforeach

Где мне нужна помощь, это строка <a class="dropdown-item" href="{{route('projects.tasks',$project)}}">tasks</a>

Этот маршрут идет к моему контроллеру:

Route::get('/projects/tasks', ['as' => 'projects.tasks', 'uses' => 'ProjectController@seeTasks']);

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

Это функция, которую я сейчас имею в своем контроллере:

public function seeTasks(Project $project){
    return $project;

}

Возвращает пустой массив []

Заранее спасибо

1 Ответ

2 голосов
/ 17 апреля 2019

Для этого вам необходимо использовать модель маршрута.Таким образом, ваше определение маршрута будет

Route::get('/projects/{project}/tasks', ['as' => 'projects.tasks', 'uses' => 'ProjectController@seeTasks']);

Laravel автоматически выберет проект, который вы передаете на маршрут, или выдаст исключение, если модель не существует.

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