【问题标题】:Laravel: calling the View on the Routes vs ControllerLaravel:在路由与控制器上调用视图
【发布时间】:2021-11-22 08:33:13
【问题描述】:
- 我想知道使用Routes和使用Routes有什么区别
控制器? Laravel 的系统有没有很大的不同,或者是
只是逻辑问题?
- 在 Routes 上调用 View 和在
在控制器上查看?
-
Controller会自动缓存View而Routes不会?因为我在某处读到,如果我们在Controller中调用View,它会被缓存,但是如果我们在Routes中调用View,它是不是,所以我们必须在路由中手动缓存视图。 这是真的吗?
【问题讨论】:
标签:
php
laravel
view
routes
controller
【解决方案1】:
我想知道使用Routes和Controller有什么区别?
Laravel 的系统有很大的不同,还是只是逻辑问题?
Routes 是您声明应用程序 url 的地方,Controller 包含表示应用程序逻辑的代码。
你可以把代码放在路由声明的回调参数中
Route::get('/user', function () {
$user = User::where('active', '=', 1)
->where('parent_user_id', '=', Auth::id())
->paginate(10);
return view('users', ['users' => $user]);
});
但它会很快变得混乱,所以最好声明一个与控制器类相关的路由
Route::get('/user', [UserController::class, 'index']);
在Routes上调用View和在Controller上调用View有区别吗?Controller会自动缓存View而Routes不会吗?因为我在某处读到,如果我们在Controller中调用View,会是缓存,但是如果我们在路由中调用视图,则不是这样,我们必须在路由中手动缓存视图。这是真的吗?
没有区别,除非与第三方缓存包相关,否则两者都不缓存。
【解决方案2】:
Controller 是否会自动缓存 View 而 Routes 不会?因为我在某处读到,如果我们在 Controller 中调用 View,它将被缓存,但如果我们在 Routes 中调用 View,则不是,所以我们必须在 Routes 中手动缓存 View。这是真的吗?
Laravel 会自动缓存视图和路由。
视图缓存存在于:storage/framework/views
如果你想管理视图的缓存:
php artisan view:clear
php artisan view:cache
路由缓存存在于:bootstrap/cache/routes.php
如果你想管理路由的缓存:
php artisan route:clear
php artisan route:cache