我有一个问题,无法将数组从Laravel的AuthController传递到auth.login视图。我要做的是从News模型中检索数据并将其发送到视图。我知道如何使用Eloquent来检索数据,但是将数据从控制器传递到视图是我的问题,因为我看不到Laravel正在渲染视图的方式/位置。
我有一个问题,无法将数组从Laravel的AuthController传递到auth.login视图。我要做的是从News模型中检索数据并将其发送到视图。我知道如何使用Eloquent来检索数据,但是将数据从控制器传递到视图是我的问题,因为我看不到Laravel正在渲染视图的方式/位置。
return view('greetings', ['name' => 'Victoria']); // in controller
那么在您的视图中,您应该能够访问变量$name
,它应该等于Victoria
var_dump($name); // in view
我不是完全确定这里的目标是什么,但你说:
我看不到 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返回其视图的地方。
如果您需要调整此行为或使用某些数据返回视图,则可以在控制器中覆盖这些方法,如果这确实是您所面临情况的最佳解决方案。
我通过在重定向方法中通过控制器传递变量来解决了这个问题。
与此同时,我找到了更好的方法来实现这个。
您可以在AuthController.php中覆盖showRegistrationForm()方法,并传递您想要在视图中使用的数据。例如:
public function showRegistrationForm()
{
$results = Model::all();
return view('auth.register', ['results' => $results]);
}