我正在尝试找出从刀片模板中引用资源链接的“ Laravel”方式。
上下文是我正在构建的CRUD管理面板。URL如下:
"list" camera resources:
/admin/cameras
"show" a camera resource:
/admin/cameras/12
这些工作正常。
我的routes.php:
Route::resource('admin/cameras', 'MyAdmin\\Controllers\\CamerasController');
在“列表”操作的模板中,我试图在每行上添加一个链接以转到该资源的“显示”操作。我目前在views / cameras / index.blade.php中的工作代码:
<span>{{ link_to('/admin/cameras/'.$r['id'], $v); }}</span>
...其中$ r是封闭循环中的“迭代器”。自然地,这会生成一个类似于上面“显示”的URL。
似乎更干净的方法是使用link_to_route或link_to_action,但我都运气不高。根据到目前为止的内容,似乎无法在资源上设置命名路由。上面的代码是最优的还是Laravel在这里提供了更优雅的东西?
注意:我已经看到了一些类似的问题,但是我的问题专门针对“资源”路线。
如果您查看laravel.com/docs/controllers#resource-controllers,将为资源充足的路由自动分配路由名称:
+-----------+---------------------------+---------+------------------+
| Verb | Path | Action | Route Name |
+-----------+---------------------------+---------+------------------+
| GET | /resource | index | resource.index |
| GET | /resource/create | create | resource.create |
| POST | /resource | store | resource.store |
| GET | /resource/{resource} | show | resource.show |
| GET | /resource/{resource}/edit | edit | resource.edit |
| PUT/PATCH | /resource/{resource} | update | resource.update |
| DELETE | /resource/{resource} | destroy | resource.destroy |
+-----------+---------------------------+---------+------------------+
因此,如果您的资源名称为admin/cameras
,则只需替换resource
为admin/cameras
并生成到路线的链接:
link_to_route('admin/cameras.show', $v, array('id' => $r['id']))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句