Laravel 4嵌套资源控制器Route :: resource('admin / photo','PhotoController');不工作

时间:2013-01-29 14:50:20

标签: laravel laravel-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)
    {
        //
    }

}

索引(/ admin / photo GET),创建(/ admin / photo / create)和商店(/ admin / photo POST )行动工作正常......但不是编辑显示,我只是找不到404状态的页面。

如果我放弃管理员根路径,它会工作。

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

4 个答案:

答案 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,以设置照片资源作为管理员的子资源。

检查一下 https://tutsplus.com/lesson/nested-resources/

答案 2 :(得分:0)

您可能需要告诉Composer再次重新加载类,从命令行运行:

composer dump-autoload

这应该有效。

答案 3 :(得分:0)

只需使用群组前缀 - &gt;管理员。使用嵌套的admin.photo会为您创建一个错误的网址,例如admin / {admin} / photo / {photo},这是您不想要的。