如何显示 laravel 中 2 个表中带有 ID 的用户名
how to show user name with id from 2 tables in laravel
当我发送一封信时,我用 auth()->user()->id
捕获 sender_id 并保存到信中 table
但只有 user_id 会节省,例如 2 或 3 ...
如何在我的视图中显示用户名?
list.blade.php :
<tr>
<td>{{ $letter->sender_id }}</td>
</tr>
LetterController.php -> public 函数索引:
$letters = Letter::latest()->paginate(10)->where('recieve_id', '=', auth()->user()->id);
LetterController.php -> public 函数存储:
Letter::create([
'sender_id' => auth()->user()->id,
]);
字母table:
$table->string('sender_id');
和我有关系但我不知道它是否正确
Letter.php :
public function user()
{
return $this->belongsTo(User::class, 'id', 'sender_id');
}
User.php:
public function letter()
{
return $this->hasMany(Letter::class);
}
更新:
在使用时看到:
<td>{{ $letter->user->name }}</td>
但我有这个错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.sender_id' in
'where clause' (SQL: select * from `users` where `users`.`sender_id` = 1 limit
1) (View: D:\Web\Projects\automation\resources\views\Letter\list.blade.php)
在这样的视图中:
{{ $letter->user->name }}
当我发送一封信时,我用 auth()->user()->id
捕获 sender_id 并保存到信中 table
但只有 user_id 会节省,例如 2 或 3 ...
如何在我的视图中显示用户名?
list.blade.php :
<tr>
<td>{{ $letter->sender_id }}</td>
</tr>
LetterController.php -> public 函数索引:
$letters = Letter::latest()->paginate(10)->where('recieve_id', '=', auth()->user()->id);
LetterController.php -> public 函数存储:
Letter::create([
'sender_id' => auth()->user()->id,
]);
字母table:
$table->string('sender_id');
和我有关系但我不知道它是否正确
Letter.php :
public function user()
{
return $this->belongsTo(User::class, 'id', 'sender_id');
}
User.php:
public function letter()
{
return $this->hasMany(Letter::class);
}
更新:
在使用时看到:
<td>{{ $letter->user->name }}</td>
但我有这个错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.sender_id' in
'where clause' (SQL: select * from `users` where `users`.`sender_id` = 1 limit
1) (View: D:\Web\Projects\automation\resources\views\Letter\list.blade.php)
在这样的视图中: {{ $letter->user->name }}