laravel - 如何在路由之前获取一些数据并将其发送到 laravel 中的路由?
问题描述
我在数据库中有不同的域和不同的路由,我想将每个域发送到特定的路由。我怎样才能做到这一点?在哪个文件中,我可以从路由之前发生的数据库中获取数据,以决定调用哪个控制器和方法。我可以像这样在 web.php 中有一个变量($domains)吗:
foreach ($domains as $domain) {
Route::group(array('domain' => $domain['domain']), function() use ($domain) {
Route::get('/', '' . $domain['controller'] . '@' . $domain['method']);
});
}
解决方案
您应该为此使用服务提供者(引导)。转到/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']);
});
}
}
推荐阅读
- c - GCC -O0 使用内部函数生成奇怪的 AVX 额外存储/重新加载指令
- javascript - 如何在 Ionic-Angular 应用程序中保存图像(Base64 字符串)
- c - C汇编实现冒泡排序
- matplotlib - 使用 FOR 运算符绘制所有数据框列的 Matplotlib 图
- react-native - 如何让 React Native Expo 应用程序自行关闭,并在用户下次打开应用程序时重新打开?
- python - 创建虚拟环境后“include”文件夹的作用是什么?
- python - 是否可以在运行时以编程方式装饰函数/方法?
- c# - 在 TableLayoutPanel 中检测垂直滚动的结束
- javascript - 如何使用而不是触发模态
- python - 按照论坛中的链接使用 BS4 抓取线程(评论)