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

3

我有一个问题,无法将数组从Laravel的AuthController传递到auth.login视图。我要做的是从News模型中检索数据并将其发送到视图。我知道如何使用Eloquent来检索数据,但是将数据从控制器传递到视图是我的问题,因为我看不到Laravel正在渲染视图的方式/位置。


我刚遇到了同样的问题。你找到解决方法了吗? - michaeljdennis
4个回答

1
在控制器中返回视图方法时,将数组作为第二个参数添加到其中。
return view('greetings', ['name' => 'Victoria']); // in controller

那么在您的视图中,您应该能够访问变量$name,它应该等于Victoria

var_dump($name); // in view

文档中更多内容


我之前尝试过这个.. AuthController似乎没有将其传递到注册视图。不知道是否存在错误或者Auth/register.blade.php只是使用了另一个控制器。但是是哪一个呢? - nclsvh

0

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

我看不到 Laravel 渲染视图的方式/位置。

因此来回答:

Laravel 的 AuthController 引入了 AuthenticatesAndRegistersUsers trait,它本身引入了其他一些 traits,其中之一是 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 trait中也有类似的方法。

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

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


0

我通过在重定向方法中通过控制器传递变量来解决了这个问题。


0

与此同时,我找到了更好的方法来实现这个。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接