调用路由资源时遇到这个常见问题。我需要从我的href链接中调用路径资源中的动作edit()
。我的代码如下所示:
在路线中,我有:
Route::resource('admin/settings/basic' , 'admin\settings\BasicController');
在我的 index.blade.php 中,我有:
<li><a href="{{ link_to_route('admin/settings/basic.edit') }}">Basic Settings</a></li>
可以在我的href链接link_to_route
中调用它?似乎行不通。只有一种方法可行:
<li><a href="{{ URL::to('admin/settings/basic/{basic}/edit') }}">Basic Settings</a></li>
但是,当我使用它时,所以url被破坏了:
http://test.dev/admin/settings/basic/%7Bbasic%7D/edit
如何修复此链接:
例如答案 0 :(得分:0)
当您声明这样的路径资源时:
Route::resource('admin/settings/basic' , 'admin\settings\BasicController');
它会创建以下路线: 注意编辑URI(最后一行)。因此,使用路径资源编辑方法,您必须传递您的参数,如下所示:
admin/settings/basic/{basic}/edit
,其中{basic}接受参数。
因此,遵循路径资源约定,您的编辑链接应生成以下内容:
http://test.dev/admin/settings/basic/1/edit
解决方案[第4号]:
1)在您的route.php中,您可以像这样定义资源路径:
Route::resource('admin/settings/basic' , 'admin\settings\BasicController');
2)所以,你必须在App\Http\Controllers\admin\settings\BasicController.php
创建BasicController.php(如果你还没完成)
3)你的edit.blade.php应放在
中 views/admin/settings/basic/edit.blade.php
4)所以,不要在视图中使用link_to_route。您可以使用如下路线功能:
<li><a href="{{ route('admin.settings.basic.edit', $user->id) }}">Basic Settings</a></li>
请注意,您必须传递id参数($ user-&gt; id)。这将产生以下URI: