2017-06-02 8 views
0

laravelのデフォルトの認証システムで提供されているapp.blade.phpとは異なるapp.blade.phpを使用しています。私が作成したものでは、毎回変数を与えて、コード内のどこにいるのかを示す必要があります。例えば、私のルートに、私が使用します。laravelログインルートに変数を送信

Route::get('/', ['as' => 'home', function() { 
    $position = ['main_title'=>'Home','second_title'=>'', 
       'urls'=> 
        [ 
         ['name'=>'home','url'=>'#'] 
        ] 
       ]; 
    return view('home')->with('position',$position); 
}]); 

そして、私のapp.blade.phpで、私はなど

メインタイトルを印刷するには、この$の位置を使用することができますが、私がしようとすると、今、問題が来ます$ positionが設定されていないため、ログインにアクセスします。どのように私はLaravelでそれを達成することができますので、認証システムは私の新しいブレードシステムを使用しますか?

ありがとうございました。

+0

を使用することができますか?別の刃を意味する? –

答えて

1

authビューでは、にあるレイアウトファイルapp.blade.phpが使用されます。これはすべてのビューの一番上にコード@extends('layouts.app')によって行われます。つまり、認証ビューはこのレイアウトを拡張します。

すべての認証ビューでレイアウトを変更するには、手作業で@extends('layouts.app')の部分を作成した新しいレイアウトファイルに置き換えます。たとえば、新しいカスタムレイアウトファイルがresources/views/base.blade.phpの場合は、デフォルトのファイル名を@extends('base')に置き換えます。

+0

私が知っているのは、ログイン用のルートが表示されているときにApp \ Http \ Controllers \ Auth \ AuthController @ showLoginFormがあり、そこから推測すると、ログインの表示フォームが呼び出されます。私はビューを呼び出す前に変数$ positionを設定することが可能かどうか疑問に思っていましたか? – Richard

+1

@リチャード可能です。あなたはコントローラに基づいてlaravelの古いバージョンを使用しているように見えます。デフォルトの認証コントローラは、ほとんどのコントローラロジックを含む特性を使用します。ですから、あなたは 'public function showLoginForm()を追加することでメソッドをオーバーライドするだけです。 { return view( 'auth.login'); } 'を' AuthController'に追加します。これで、完全な制御が可能になり、ビューと共に追加の変数を追加できます。 – Sandeesh

0

あなたが別の(すべての)ビューで変数を使用したい場合は、あなたがあなたの質問を明確にすることができViewComposer

関連する問題