我无法从数据库中获取数据。出现错误:
ErrorException(E_ERROR)
未定义变量:用户
(查看:/Users/alex/Desktop/sites/tj/resources/views/user/submissions.blade.php)
控制器:
public function __construct()
{
$this->middleware('auth', ['except' => ['getById',
'getByUsername', 'submissions', 'comments', 'showSubmissions',
'showComments']]);
}
和
public function showSubmissions($username)
{
$user = new UserResource(
User::withTrashed()->where('username', $username)->firstOrFail(),
true
);
$submissions = SubmissionResource::collection(
Submission::whereUserId($user->id)
->withTrashed()
->orderBy('created_at', 'desc')
->simplePaginate(15)
);
return view('user.submissions', compact('user', 'submissions'));
}
查看:
{{ $user->username }}
API :
Route::get('/user', 'UserController@getByUsername');
我需要获取有关用户(username
)的信息。
问题出在哪里,错误在哪里?
答案 0 :(得分:0)
根据您的评论,您有以下路线:
Route::get('/submission', function () {
return view('user.submissions');
});
加载此视图时,没有将用户对象传递给它。然后,当视图运行时,它试图访问一个不存在的变量。
要解决此问题,您需要向正在加载的视图传递变量。例如,您可以执行以下操作:
Route::get('/submission', function () {
return view('user.submissions', ['user' => auth()->user()]);
});
请注意,您可以根据用例更改获取用户实例的方式。我只是让经过身份验证的用户演示该原理。