如何检测当前的 URL 或者路由名称?
在日常的开发中,我们常会需要通过校验当前 URL 或路由来显示或隐藏对应元素和执行对应的操作,接下来的内容将会展示几种实现方式。
1. 检查 URL 是否为 X
简单来说,就是你需要检查当前 URL 是否为一个特定的值,然后展示需要展示的内容。
在控制器中:
if (\Request::is('companies')) {
// 展示相应的菜单或其他内容
}
在 Blade 模板文件中 – 操作基本一致:
@if (\Request::is('companies'))
相应的菜单
@endif
2. 检查 URL 是否包含内容 X
举一个稍复杂的例子, Request::is() 方法允许传入一个用于模式匹配的参数,如下所示:
if (\Request::is('companies/*')) {
// 将会匹配 URL /companies/999 or /companies/create
}
3. 使用路由的命名进行检查
你们可能知道,每个路由都能在 routes.php 文件中按照下面的方式进行命名:
Route::get('/companies', ['as' => 'comp', function () {
return view('companies');
}]);
那么如何知道当前的路由是否为 ‘comp’ ? 答案很简单:
if (\Route::current()->getName() == 'comp') {
// 我们匹配到了正确的路由!
}
以上就是三种用于检查当前 URL 或者路由的方法。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。