2016-08-11 6 views
3

みましょう私たちはビューでAppServiceProviderビューを上書きする() - >コントローラメソッドでキーを共有しますか?

$page = [ 
    'title' => 'Page Name', 
    'info' => 'Content Here' 
]; 

view()->share('page', $page); 

にこのような何かを持っていると言う:

<h1>{{$page['title']}}</h1> 
<p>{{$page['info']}}</p> 

私は方法コントローラに$page['title']を上書きしたい場合は、私はこのように試してみました:

public function index() 
{ 
    $page['title'] = "overwrite title only"; 
    return view('index', compact('page')); 
} 

問題は$page['info']は利用できなくなり、表示されません。どのようにこの状況を克服できますか?

+0

「pageHeading」とは何ですか? –

+0

@IvankaTodorovaおっと、私はそれを修正しました。それは 'page'でなければなりません –

+0

' title'のみを含む新しい変数を送信するからです! – Maraboc

答えて

2

最も簡単な解決策は、あなたのコントローラに交換することができます

$page['title'] = "overwrite title only"; 

で:

$page = array_merge(
    view()->shared('page'), 
    ['title' => "overwrite title only"] 
); 

view()->shared()方法共有変数を返し、その後、我々はいくつかの配列の要素を上書きすることができますし、オーバーライドされた配列をビューに渡します。

関連する問題