【问题标题】:How can i get some data before route and send it into route in laravel?如何在路由之前获取一些数据并将其发送到 laravel 中的路由?
【发布时间】:2020-10-21 15:56:20
【问题描述】:

我在数据库中有不同的域和不同的路由,我想将每个域发送到特定的路由。 我怎样才能做到这一点? 在哪个文件中,我可以从路由之前发生的数据库中获取数据,以决定调用哪个控制器和方法。 我可以像这样在 web.php 中有一个变量($domains)吗:

foreach ($domains as $domain) {
    Route::group(array('domain' => $domain['domain']), function() use ($domain) {
        Route::get('/', '' . $domain['controller'] . '@' . $domain['method']);
    });
}

【问题讨论】:

    标签: laravel routes


    【解决方案1】:

    您应该为此使用服务提供程序(引导)。转到/app/Providers/AppServiceProvider.php 并发送以下代码:

    <?php
    
    namespace App\Providers;
    
    use App\MyDomainsModel;
    use Illuminate\Support\Facades\Route;
    
    use Illuminate\Support\ServiceProvider;
    
    class AppServiceProvider extends ServiceProvider
    {
        /**
         * Register any application services.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    
        /**
         * Bootstrap any application services.
         *
         * @return void
         */
        public function boot()
        {
            // get all domains
            $Domains = MyDomainsModel::all();
    
            // register the routes
            foreach($Domains as $Domain)
                Route::group(['domain' => $Domain['domain']] , function()use($Domain) {
                    Route::get('/', $Domain['controller'].'@'.$Domain['method']);
                });    
        }
    }
    

    【讨论】:

    • 我的荣幸。一般来说,当你想先运行一些东西时,使用 AppServiceProvider 启动方法。
    猜你喜欢
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 2019-08-17
    • 2021-03-12
    • 2019-10-18
    相关资源
    最近更新 更多