Создайте именованный маршрут с параметрами в движке шаблонов Blade с маршрутами Laravel - PullRequest
0 голосов
/ 23 мая 2018

У меня есть маршрут:

Route::get('/admin/users/manage/{id}', 'Admin\UsersController@manage')->name('admin.users.manage');

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

@foreach($users as $user)
<tr>
    <th scope="row">{{ $user->id }}</th>
    <td>{{ $user->name }}</td>
    <td>{{ $user->email }}</td>
    <td>
        <a href="{{ route('admin.users.manage', ['id' => $user->id]) }} " class="btn btn-primary btn-sm">Edit</a>
    </td>
</tr>
@endforeach

Я получаю следующую ошибку:

Missing required parameters for [Route: admin.users.manage] [URI: admin/users/manage/{id}]. (View: /resources/views/layouts/partials/admin/_sidebar.blade.php) (View: /resources/views/layouts/partials/admin/_sidebar.blade.php)

Я пытался сделать это также без экранирования, но возникает та же ошибка.

@foreach($users as $user)
<tr>
    <th scope="row">{{ $user->id }}</th>
    <td>{{ $user->name }}</td>
    <td>{{ $user->email }}</td>
    <td>
        <a href="{!! route('admin.users.manage', ['id' => $user->id]) !!} " class="btn btn-primary btn-sm">Edit</a>
    </td>
</tr>
@endforeach

Ответы [ 2 ]

0 голосов
/ 23 мая 2018
    <a href="{!! route('admin.users.manage', [$user->id]) !!} " class="btn btn-primary btn-sm">Edit</a>

если вы используете ассоциативный массив, он будет скомпилирован как

/admin/users/manage/{id}?id=id

Если вы хотите использовать только [$ user-> id], он будет скомпилирован как фактический параметр маршрута.

/admin/users/manage/$id

Надеюсь, это поможет.

0 голосов
/ 23 мая 2018

Просто удалите немного [], см. Ниже

<td>
    <a href="{{ route('admin.users.manage', $user->id) }} " class="btn btn-primary btn-sm">Edit</a>
</td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...