在Larvel 4中,我正在尝试设置嵌套资源控制器。
routes.php :中的
Route::resource('admin/photo', 'Controllers\\Admin\\PhotoController');
app \ controllers \ Admin \ PhotoController.php :
<?php namespace Controllers\Admin;
use Illuminate\Routing\Controllers\Controller;
class PhotoController extends Controller {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
return 'index';
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}
/**
* Display the specified resource.
*
* @return Response
*/
public function show($id)
{
return $id;
}
/**
* Show the form for editing the specified resource.
*
* @return Response
*/
public function edit($id)
{
return "edit $id";
}
/**
* Update the specified resource in storage.
*
* @return Response
*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @return Response
*/
public function destroy($id)
{
//
}
}
索引(/ admin / photo GET),创建(/ admin / photo / create)和商店(/ admin / photo POST )行动工作正常......但不是编辑和显示,我只是找不到404状态的页面。
如果我放弃管理员根路径,它会工作。
有人能告诉我如何设置Route :: resource控制器以使用像admin / photo这样的嵌套路径
答案 0 :(得分:15)
参见https://github.com/laravel/framework/issues/170 在那里找到我的答案(看看泰勒写的是什么)
对于那些想要查看我现在在routes.php中运行的代码的人:
Route::group(array('prefix' => 'admin'), function() {
// Responds to Request::root() . '/admin/photo'
Route::resource('photo', 'Controllers\\Admin\\PhotoController');
});
答案 1 :(得分:1)
实际上,您应该将“admin / photo”替换为“admin.photo”for laravel,以设置照片资源作为管理员的子资源。
答案 2 :(得分:0)
您可能需要告诉Composer再次重新加载类,从命令行运行:
composer dump-autoload
这应该有效。
答案 3 :(得分:0)
只需使用群组前缀 - &gt;管理员。使用嵌套的admin.photo会为您创建一个错误的网址,例如admin / {admin} / photo / {photo},这是您不想要的。