在控制器方法中覆盖view()->share的键?
在控制器方法中覆盖view()->share的键?
假设我们在AppServiceProvider
中有以下内容:
$page = [ 'title' => '页面名称', 'info' => '内容在这里' ]; view()->share('page', $page);
在视图中:
{{$page['title']}}
{{$page['info']}}
如果我想在方法控制器中覆盖$page['title']
,我尝试了以下方法:
public function index() { $page['title'] = "仅覆盖标题"; return view('index', compact('page')); }
问题是$page['info']
将不再可用,它将在视图中不存在。我该如何解决这个问题?
在Controller中覆盖view()->share键的最简单解决方案可能是将以下代码:
$page['title'] = "overwrite title only";
替换为:
$page = array_merge( view()->shared('page'), ['title' => "overwrite title only"] );
view()->shared()方法返回共享变量,然后我们可以覆盖一些数组元素并将覆盖后的数组传递给视图。