【问题标题】:Redirect to parameterized name controller重定向到参数化名称控制器
【发布时间】:2017-03-06 11:08:01
【问题描述】:

我想重定向到“通用”控制器功能。 我尝试过这样的事情:

[1]: Route:get('/ent/create_foreign/{entity}, '{entity}Controller@index');


[2]: Route::get('/ent/create_foreign/{entity}', 
            function($entity){
                return redirect()->action('{$entity}Controller@index');
            }

    );

[3]: Route::get('/ent/create_foreign/{entity}', [
        'as' => 'entity1', 'uses' => 'entity1Controller@index',
        'as' => 'entity2', 'uses' => 'entity2Controller@index'
    ]);

[1]:显示此错误: 类 App\Http\Controllers{entity}Controller 不存在

[2]:显示此错误: Action App\Http\Controllers{$entity}Controller@index 未定义。
显然这个 Controller 和她的函数是被定义的。

[3]:它有效,但总是返回最后一个“实体”。对于此示例,返回 'entity2'。

提前致谢。

【问题讨论】:

    标签: controller routes laravel-5.3


    【解决方案1】:

    尝试将单引号更改为双引号,例如 2:

    Route::get('/ent/create_foreign/{entity}', function ($entity) {
        return redirect()->action("{$entity}Controller@index");
    });
    

    你的类名和文件名应该保持一致,我建议尽可能遵循 PSR 以帮助保持一致性和易用性。

    类名必须在 StudlyCaps 中声明。

    http://www.php-fig.org/psr/psr-1/#namespace-and-class-names

    例如假设有一个“用户关系控制器”

    正确

    class UserRelationsController
    

    不正确

    class userRelationsController
    

    此外,文件名也应该是区分大小写的匹配,例如

    class UserRelationsController // UserRelationsController.php
    

    因此,如果您要使用上述路由重定向到 UserRelations 控制器,您的 url 必须是:

    /ent/create_foreign/UserRelation 
    

    而不是类似:

    /ent/create_foreign/userRelation //or
    /ent/create_foreign/user_relation
    

    希望这会有所帮助!

    【讨论】:

    • 显示同样的错误,但是$entity是参数的值。
    • UrlGenerator.php 第 605 行中的 InvalidArgumentException:Action App\Http\Controllers\officeTypesController@index 未定义。 但是,此控制器和此操作已定义。
    • @Godiez 控制器名称是否以大写 O 开头??
    • 什么?对不起,我不明白你的评论。
    • @Godiez 你收到officeTypesController 的错误,我在问你的控制器是否真的被命名为OfficeTypesController(大写的O 开头而不是小写的o)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 2014-12-25
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    相关资源
    最近更新 更多