更新我已经解决了问题我忘记了get()
这里
$userDiplomas = UserDiploma::query()->where( 'user_id', Auth::user()->id );
但仍然不明白为什么我无法使用此
Auth::user()->diplomas as $diploma
这是我的案例
每个用户可以注册文凭或更多,现在在用户档案中我想显示用户注册的所有文凭。
我制作了一个名为user_diplomas
的新表,这是表格迁移
$table->integer( 'user_id' )->unsigned();
$table->foreign( 'user_id' )->references( 'id' )->on( 'users' );
$table->integer( 'diploma_id' )->unsigned();
$table->foreign( 'diploma_id' )->references( 'id' )->on( 'diplomas' );
当用户登录并立即点击注册时,它会向user_diplomas
表(user_id,diploma_id)插入2个值,这样可以正常工作。
现在出现了问题
我需要获取用户注册的文凭并在其个人资料中显示,请查看User
模型和UserDiploma
模型。
用户模型
public function diplomas() {
return $this->hasMany( 'App\Models\UserDiploma', 'diploma_id' );
}
UserDiploma Model
public function diplomaId() {
return $this->belongsTo( 'App\Models\Diploma', 'diploma_id' );
}
现在试图取得我试过的文凭
@foreach(Auth::user()->diplomas as $diploma)
....
..........
@endforeach
但没有结果出来!
我也尝试在HomeController
public function index() {
$userDiplomas = UserDiploma::query()->where( 'user_id', Auth::user()->id );
return view( 'trainees.profiles', compact('userDiplomas') );
}
但它也没有用。
任何想法请如何使其发挥作用。
答案 0 :(得分:0)
更改'用户'模特到
public function diplomas() {
return $this->hasMany( 'App\Models\UserDiploma', 'diploma_id','diploma_id' );
}