2017-06-02 64 views
0

我正在使用一個不同的app.blade.php比在laravel提供的默認身份驗證系統。在我創建的那個中,我需要每次都給一個變量,以便它顯示我們在代碼中的位置。例如,對於我的路線,我用: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

驗證視圖使用位於resources/views/layouts中的佈局文件app.blade.php。這是通過在所有視圖頂部的代碼@extends('layouts.app')完成的,這意味着auth視圖擴展了這個佈局。

要更改所有auth視圖中的佈局,請手動將頂部的@extends('layouts.app')部分替換爲您創建的新佈局文件。例如,如果您的新自定義佈局文件是resources/views/base.blade.php,則將默認擴展名替換爲@extends('base')

+0

我知道,我只是想知道,當我看到路由例如登錄時,有App \ Http \ Controllers \ Auth \ AuthController @ showLoginForm,我猜從那裏,它會調用視圖登錄表單。我想知道在調用視圖之前是否可以設置變量$ position? – Richard

+1

@Richard你可以。看起來你正在使用基於控制器的老版本的laravel。默認的認證控制器使用包含大部分控制器邏輯的特徵。所以你所要做的就是通過添加'public function showLoginForm() { return view('auth.login');在'AuthController'中輸入' }。現在您可以完全控制,並可以添加任何附加變量和視圖。 – Sandeesh

0

如果你想使用不同的(全部)視圖的變量,你可以使用ViewComposer