【发布时间】:2021-02-03 23:29:13
【问题描述】:
我刚刚为用户创建了个人资料,并希望显示与登录用户或其他选定用户相关的教育详细信息。
为此,我为用户创建了一个教育模型,并赋予了双方适当的关系。我无法从登录用户或其他用户的教育表中获取任何数据。我在刀片文件中使用了 foreach 标签。请修改我的代码。谢谢。
教育模式
class Education extends Model
{
use HasFactory;
protected $primaryKey = 'education_id';
public function myusers()
{
return $this->belongsTo('App\Models\User','user_id','education_id');
}
}
用户模型
public function myeducation()
{
return $this->hasMany('App\Models\Education','education_id','user_id');
}
配置文件控制器
public function index()
{
$user = Auth::user();
return view('candidate.profile',['user'=>$user,]);
}
刀片文件
@foreach ($user->myeducation as $education)
<div>
{{ $education->school }}
</div>
@endforeach
教育和用户表结构
**Education Table**
{
Schema::create('education', function (Blueprint $table) {
$table->bigIncrements('education_id');
$table->bigInteger('user_id');
$table->string('school');
$table->string('degree');
$table->string('fieldOfStudy');
$table->date('startDate');
$table->date('endDate');
$table->string('grade');
$table->string('activities');
$table->string('description');
$table->timestamps();
});
}
用户表。
$table->increments('user_id');
$table->bigInteger('role_id');
$table->bigInteger('membership_id')->nullable();
$table->string('firstname');
$table->string('lastname');
没有错误信息,只是空白
Table entries
DB::table('education')
'user_id' => '2',
'school' => 'University of Bedfordshire',
'degree' => 'MBA',
]);
DB::table('users')->insert([
'user_id' => '1',
'role_id' => '1',
'firstname' => 'Mohammed',
'lastname' => 'Sabeel',
.......
]);
DB::table('users')
' user_id' => '2'
'role_id' => '2',
'firstname' => 'zahida',
'lastname' => 'sabeel',
.......
]);
【问题讨论】:
-
你的桌子是什么样子的?对于关系而言,这些键似乎有点奇怪。你有
user_id和education_id听起来像是两个不同的值。键应代表两个表中的相同值(例如模型变量$user->id===$education->user_id)。如果该陈述已经成立,那么您无需手动定义键,因为 Laravel 会为您完成。 -
你好@matticustard。 user>user_id 和 Education>user_id 具有相同的值。并且密钥已经手动输入。请检查我的问题所附的表格结构。谢谢
标签: laravel eloquent relationship