4

在 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)
    {
        //
    }

}

index (/admin/photo GET)、create (/admin/photo/create) 和store (/admin/photo POST) 操作工作正常……但不能编辑显示,我只是得到一个页面未找到 404 状态。

如果我删除管理员根路径,它会起作用。

谁能告诉我如何设置 Route::resource 控制器以使用像 admin/photo 这样的嵌套路径

4

4 回答 4

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');
});
于 2013-01-29T16:07:38.340 回答
1

实际上,您应该将“admin/photo”替换为“admin.photo”,以便 laravel 为 photo 作为 admin 的子资源设置资源。

检查这个 https://tutsplus.com/lesson/nested-resources/

于 2013-07-13T09:33:48.730 回答
0

可能你需要告诉 Composer 重新加载类,从你的命令行运行:

composer dump-autoload

那应该行得通。

于 2013-10-11T07:19:27.617 回答
0

只需简单地使用组前缀 -> admin。使用嵌套的 admin.photo 会为您创建一个错误的 url,例如 admin/{admin}/photo/{photo},这是您不想要的。

于 2015-03-17T12:47:03.450 回答