php - 未定义的变量 $user->username (Laravel 5.7)
问题描述
我无法从数据库中获取数据。收到错误:
错误异常 (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 }}
接口:
Route::get('/user', 'UserController@getByUsername');
我需要获取有关用户 ( username
) 的信息。
问题是什么,错误在哪里?
解决方案
根据您的评论,您有这条路线:
Route::get('/submission', function () {
return view('user.submissions');
});
当您加载此视图时,您不会将用户对象传递给它。然后当视图运行时,它试图访问一个不存在的变量。
要解决此问题,您需要将变量传递给正在加载的视图。例如,您可以执行以下操作:
Route::get('/submission', function () {
return view('user.submissions', ['user' => auth()->user()]);
});
请注意,您可以根据用例更改获取用户实例的方式。我只是让经过身份验证的用户来演示原理。
推荐阅读
- node.js - Node.js Request() 在一个特定域的页面上失败
- c# - Windows 10 1803 中没有默认字体
- android - 排球错误响应为空
- git - (GitKraken)预提交失败退出代码:1
- enums - 如何返回特定索引处的枚举字符串?
- mysql - 从另一台计算机访问数据库
- powershell - 执行powershell脚本的任务调度程序没有得到对webRequest的响应
- ios - 如何在 Xamarin iOS 中为标题添加下划线
- google-api - 查看 G-suite 设备登录历史记录
- jboss - 使用第三方 jdbc jar 与 jboss_redirected 冲突。_DocumentBuilderfactory