将数组从AuthController传递到Laravel 5中的登录视图

时间:2015-06-24 21:00:01

标签: authentication laravel controller

将数据从Laravel的AuthController传递到auth.login视图时遇到问题。我想要做的是从新闻模型中检索数据并将其发送到视图。我知道如何使用eloquent来检索数据,从控制器传递到视图是我的问题,因为我无法看到Laravel如何/在哪里渲染视图。

4 个答案:

答案 0 :(得分:1)

在控制器中返回时,将数组作为第二个参数添加到view方法中。

return view('greetings', ['name' => 'Victoria']); // in controller

然后在您看来,您应该能够访问应该等于$name的变量Victoria

var_dump($name); // in view

More in the documentation

答案 1 :(得分:0)

我通过在重定向方法上通过Controller传递变量来解决它。

答案 2 :(得分:0)

我不完全确定目标是什么,但你说:

  

我无法看到Laravel如何/在哪里呈现视图。

所以回答:

Laravel的AuthController引入了一个特性AuthenticatesAndRegistersUsers,它本身可以引入其他一些特征,一个是AuthenticatesUsers,另一个是RegistersUsers。

在AuthenticatesUsers中你会找到一个类似的方法:

/**
 * Show the application login form.
 *
 * @return \Illuminate\Http\Response
 */
public function showLoginForm()
{
    $view = property_exists($this, 'loginView')
                ? $this->loginView : 'auth.authenticate';

    if (view()->exists($view)) {
        return view($view);
    }

    return view('auth.login');
} 

RegistersUsers特性中也有类似的方法。

这是AuthController返回其视图的地方。

如果您需要调整此行为,或者返回包含某些数据的视图,您可以在控制器中覆盖这些方法,如果这确实是您给定情况的最佳解决方案。

答案 3 :(得分:0)

与此同时,我找到了一种更好的方法。

您可以覆盖AuthController.php中的showRegistrationForm()方法,并传递要在视图中使用的数据。例:



    public function showRegistrationForm()
    {
        $results = Model::all();
        return view('auth.register', ['results' => $results]);
    }