Laravel:在路由与控制器上调用视图
Posted
技术标签:
【中文标题】Laravel:在路由与控制器上调用视图【英文标题】:Laravel: calling the View on the Routes vs Controller 【发布时间】:2021-11-22 08:33:13 【问题描述】: 我想知道使用Routes和使用Routes有什么区别 控制器? Laravel 的系统有没有很大的不同,或者是 只是逻辑问题? 在 Routes 上调用 View 和在 在控制器上查看? Controller会自动缓存View而Routes不会?因为我在某处读到,如果我们在Controller中调用View,它会被缓存,但是如果我们在Routes中调用View,它是不是,所以我们必须在路由中手动缓存视图。 这是真的吗?【问题讨论】:
【参考方案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
【讨论】:
以上是关于Laravel:在路由与控制器上调用视图的主要内容,如果未能解决你的问题,请参考以下文章