在路由的' web.php '文件实践中包含多个模型



我有很多路由,对于一个页面(我的主页),我需要对几乎所有的模型进行采样。我是这样做的:

use AppModelsAa;
use AppModelsBb;
use AppModelsCc;
// and so on ...
Route::get('/', function () {
$data_for_view = [
'aa' => Aa::where('show', true)->inRandomOrder()->limit(4)->get(),
'bb' => Bb::where('published', true)->limit(4)->get(),
'cc' => Cc::where('published', true)->limit(4)->get()
// ... and so on
// ...
];
return view('welcome', $data_for_view);
});

然而,这是唯一使用这么多模型的路线。所以我的问题是:有没有更好的方法来实现这个目标?

这是标准做法吗?

一开始你应该使用一些控制器并将你所有的逻辑包装在方法

中例如:在web.php路由文件中添加:

use AppHttpControllersSomeController;
// SomeController
Route::get('/', [SomeController::class, 'index']);

在SomeController

<?php  
namespace AppHttpControllers;

use AppModelsAa;
use AppModelsBb;
use AppModelsCc;
class SomeController extends Controller
{

public function index()
{
$data_for_view = [
'aa' => Aa::where('show', true)->inRandomOrder()->limit(4)->get(),
'bb' => Bb::where('published', true)->limit(4)->get(),
'cc' => Cc::where('published', true)->limit(4)->get()
// ... and so on
// ...
];
return view('welcome',compact('data_for_view'));
}
}

您可以使用artisan命令创建控制器。

php artisan make:controller SomeController

相关内容

  • 没有找到相关文章

最新更新