Laravel BaseController构造方法设置全局变量如何仅获取指定data字段
解决方案
你可以从查询阶段就限定只取需要的data字段,避免加载不必要的数据,性能最优,修改方式如下:
1. 修改BaseController构造方法代码
protected $header_data; public function __construct() { // 直接查询仅取data字段的值,如果你确定HeaderData永远只有1条记录,用value()方法直接返回字段值 $this->header_data = HeaderData::value('data'); View::share('data', $this->header_data); }
2. 模板输出注意事项
由于你的data字段存储的是HTML内容,Blade的{{ }}语法会默认转义HTML实体,需要改用未转义输出语法才能让标签生效:
{!! $data !!}
如果你需要保留HeaderData的全部字段仅在取值时单独取data,可以用以下两种方式:
方式A:控制器取值
// 从集合中取出第一条记录的data字段 $this->header_data->first()->data;
方式B:模板直接取值
{!! $data->first()->data !!}
内容的提问来源于stack exchange,提问作者chu
相关产品推荐
相关产品推荐

