获取一些信息并在登录页面上显示

时间:2015-02-23 02:32:25

标签: php laravel laravel-5

我使用 Laravel 5 预先设置了登录页面。我想从数据库中获取一些信息,例如site_name,并在登录页面上显示。但不确定如何在文件routes.php

中配置它
Route::get('/', 'WelcomeController@index');

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)

如何在登录页面上显示该信息?

提前致谢

2 个答案:

答案 0 :(得分:1)

要将一些变量传递到登录页面,您需要创建一个名为&#34; getLogin()&#34;的新函数。在&#34; /app/Http/Controllers/Auth/AuthController.php"。然后你可以做任何你想做的事。

实施例

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

然后你可以调用$ someInfo&#34; /resources/views/auth/login.blade.php"

答案 1 :(得分:0)

对于compact函数,你不传递变量,你只需传递变量名,所以应该是:

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

而不是

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