Laravel 8如何获取->name()方法定义的路由名称用作页面标题
Laravel 8 获取路由name()绑定值渲染为页面标题
核心获取方式
Laravel 内置方法可以直接读取当前路由通过->name()绑定的名称,不需要手动解析路由文件:
- 访问对应路由时,调用
Route::currentRouteName()就能拿到你传入->name()的字符串值。
全局统一渲染方案(推荐)
不用在每个控制器单独传模板变量,直接在服务提供者里配置全局视图共享,一次配置所有页面都能调用:
- 打开
app/Providers/AppServiceProvider.php,头部引入路由门面:
use Illuminate\Support\Facades\Route;
- 在文件的
boot()方法中添加共享逻辑:
public function boot() { // 把当前路由名称共享给所有blade模板 view()->share('pageTitle', Route::currentRouteName()); }
- 在公共布局文件的
<title>标签中输出变量,同时给未设置名称的路由加默认标题兜底:
<title>{{ $pageTitle ?? '你的站点默认标题' }}</title>
注意:如果路由没有调用->name()绑定名称,Route::currentRouteName()会返回null,一定要保留兜底默认值,避免页面标题为空。
效果验证
你定义的示例路由:
Route::view('/documents_for_approvals','document_approval')->name('Document Approvals'); //SA
访问/documents_for_approvals路径时,方法返回值就是你绑定的Document Approvals,会自动渲染为对应页面的标题。
内容的提问来源于stack exchange,提问作者Salam Aslam
相关产品推荐
相关产品推荐

