使用Laravel路线在Blade模板引擎中使用params构建命名路径

时间:2018-05-23 14:26:03

标签: php laravel laravel-blade

我有一条路线:

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 :(得分:0)

只需删除一些[],见下文

<td>
    <a href="{{ route('admin.users.manage', $user->id) }} " class="btn btn-primary btn-sm">Edit</a>
</td>

答案 1 :(得分:0)

    <a href="{!! route('admin.users.manage', [$user->id]) !!} " class="btn btn-primary btn-sm">Edit</a>

如果使用关联数组,它将编译为

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

如果您只想使用[$ user-&gt; id],它将被编译为路线的实际参数。

/admin/users/manage/$id

希望这有帮助。