【问题标题】:Dynamic redirect in package route包路由中的动态重定向
【发布时间】:2014-08-10 02:28:01
【问题描述】:

我在内部开发的包中定义了一个带有一些业务逻辑的路由操作。根据此操作的结果,应用程序希望将用户重定向到某个动态路由(例如Redirect::route('admin.index', [$app->id]))。

我该怎么做?

由于 Laravel 处理路由的方式,我提出的任何解决方案都不起作用。

现在我已将路由复制到应用程序 routes.php,并将业务逻辑提取到包内的方法中。但这不是最佳选择,因为我还想将路线保留在包内。

【问题讨论】:

    标签: laravel-4 routing package


    【解决方案1】:

    Laravel 有一些关于 Package Configuration 的文档应该适合你。

    在你的包的src/config/config.php中:

    <?php
    return array(
        'route_admin_index' => 'admin.index',
    );
    

    将您的包的代码更改为:

    Redirect::route(Config::get('your_package_name::route_admin_index'), [$app->id]);
    

    现在当安装在不同的环境中时,你可以这样做:

    php artisan config:publish your_vendor_name/your_package_name
    

    这会将你的包的配置文件发布到:

    app/config/packages/your_vendor_name/your_package_name
    

    然后你可以随意更改route_admin_index

    如果php artisan config:publish 未被调用。您的路线将默认返回到您在包的配置文件中的内容。

    【讨论】:

    • 这可能行得通。但是有没有办法动态改变发送到路由的参数呢?也许是回调,但据我了解,配置不支持回调函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 2017-11-01
    • 2015-02-18
    • 2012-09-18
    • 2021-02-04
    • 1970-01-01
    • 2021-09-09
    相关资源
    最近更新 更多