【发布时间】:2014-10-29 02:51:39
【问题描述】:
我正在尝试找出从刀片模板中引用资源链接的“Laravel”方式。
上下文是我正在构建的 CRUD 管理面板。网址如下:
"list" camera resources:
/admin/cameras
"show" a camera resource:
/admin/cameras/12
这些工作正常。
我的路线.php:
Route::resource('admin/cameras', 'MyAdmin\\Controllers\\CamerasController');
在“列表”操作的模板中,我尝试在每一行上添加一个链接,以转到该资源的“显示”操作。我当前在views/cameras/index.blade.php中的工作代码:
<span>{{ link_to('/admin/cameras/'.$r['id'], $v); }}</span>
...其中 $r 是封闭循环中的“迭代器”。这自然会生成一个类似上面“show”的url。
似乎更简洁的方法是使用 link_to_route 或 link_to_action,但我都没有太多运气。根据我到目前为止所读到的内容,似乎不可能在资源上设置命名路由。上面的代码是最优的还是 Laravel 在这里提供了更优雅的东西?
注意:我见过一些类似的问题,但我的问题是特定于“资源”路线的。
【问题讨论】:
-
如果您查看laravel.com/docs/controllers#resource-controllers Laravel 将为您的资源分配路线名称。所以你的演出路线将类似于
link_to_route('admin/cameras.show', $v, array('id' => $r['id'])) -
@JofryHS:啊,我错过了已经分配的名称。如果您作为答案发布,我将作为官方答案进行检查。谢谢!
-
另外一件事我也忘了提及,如果其中很少有人以
/admin/开头,那么为您的路线添加前缀可能也是一个好习惯。 laravel.com/docs/routing#route-prefixing 享受编码。 :)
标签: php rest laravel laravel-4 laravel-routing