2015-02-23 93 views
0

我使用Laravel 5它已預先設置登錄頁面。我想從數據庫中獲取一些信息,如site_name,並將其顯示在登錄頁面上。但不知道如何配置它在文件routes.php獲取一些信息並在登錄頁面上顯示

Route::get('/', '[email protected]'); 

Route::controllers([ 
    'auth' => 'Auth\AuthController', 
    'password' => 'Auth\PasswordController', 
]); 

這裏是welcome

<?php namespace ais\Http\Controllers; 

class WelcomeController extends Controller { 

    public function __construct() 
    { 
     $this->middleware('auth'); 
    } 

    public function index() 
    { 
     $settings = Settings::findOrFail(1); 
     return view('welcome', compact($settings)); 
    } 

} 

我在這裏添加一些代碼來獲取頁面的常規設置,並設置它在功能上的默認控制器index()這樣$settings = Settings::findOrFail(1);

錯誤走了出來,這對我說

Undefined variable: settings (View: /var/www/ais/resources/views/app.blade.php) (View: /var/www/ais/resources/views/app.blade.php)

如何在登錄頁面上顯示該信息?

在此先感謝

回答

1

要傳遞一些變量進入登錄頁面,你需要在「/app/Http/Controllers/Auth/AuthController.php」中創建一個名爲「getLogin()」的新函數。然後你可以做任何你想做的事。

// app/Http/Controllers/Auth/AuthController.php 
public function getLogin() 
{ 
    $someInfo = "Some Info" ; 
    return view('auth.login', compact('someInfo')); 
} 

然後就可以調用$ someInfo內 「/resources/views/auth/login.blade.php」

+0

這非常有幫助。 BTW在哪裏可以添加這個片段的註冊和忘記密碼? – Muhaimin 2015-02-23 08:17:45

+0

是的,你這樣做。你可能想要從**「/ vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesAndRegistersUsers.php」**和**「/ vendor/laravel/framework/src中查找所有要覆蓋的功能/Illuminate/Foundation/Auth/ResetsPasswords.php"**。 – mininoz 2015-02-23 08:33:13

+0

我原來的**註冊**函數被放在**「/ vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesAndRegist ersUsers.php」 )「**和**」忘記了密碼「**被放置在**」/ vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php「**中,並帶有名爲**」getEmail()「的函數** – mininoz 2015-02-23 08:36:52

0

compact功能不傳遞變量,你只是傳遞變量名,所以它應該是:

return view('welcome', compact('settings')); 

,而不是

return view('welcome', compact($settings)); 
+0

我看。但是如何將它傳遞給'auth'視圖 – Muhaimin 2015-02-23 06:18:31

相關問題