laravel - Laravel 无法获取所选配置文件的关系数据
问题描述
我刚刚为用户创建了个人资料,并希望显示与登录用户或其他选定用户相关的教育详细信息。
为此,我为用户创建了一个教育模型,并赋予了双方适当的关系。我无法从登录用户或其他用户的教育表中获取任何数据。我在刀片文件中使用了 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',
.......
]);
解决方案
在我们开始之前,请确保您拥有与该登录用户相关联的教育。
尝试急切地加载您的关系。有时这对我有用。
在您的个人资料控制器中,
public function index()
{
$user = Auth::user()->load('myeducation');
return view('candidate.profile',['user'=>$user,]);
}
即使它不起作用,请分享您的表格结构和表格条目。以便我们可以清楚地检查。
推荐阅读
- mongodb - 在 docker-compose 自定义网络上连接到 MongoDB 数据库
- hive - 是否可以将数据从任何远程系统加载到 hive/hdfs?
- android - 如何在虚拟框上的 LineageOS 中将触摸屏变为光标
- javascript - Discord js 找不到发送错误消息的通道
- javascript - 如何使用jquery在字符串中添加变量
- sql - oracle OracleSchedulerXE中以下服务的目的是什么
- rundeck - 通过 Rundeck API 获取作业的最新执行
- vuejs3 - 使用 resolveDynamicComponent 基于对象动态创建 vue 3 组件
- audio - Clients -> Server -> Clients — 组音频合并
- sharepoint-online - 如果您只有“共享”链接,则获取 OneDrive 项目缩略图