首页 > 解决方案 > 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',
            .......
        ]);

标签: laraveleloquentrelationship

解决方案


在我们开始之前,请确保您拥有与该登录用户相关联的教育。

尝试急切地加载您的关系。有时这对我有用。
在您的个人资料控制器中,

public function index()
{

     $user = Auth::user()->load('myeducation');


      return view('candidate.profile',['user'=>$user,]);
}

即使它不起作用,请分享您的表格结构和表格条目。以便我们可以清楚地检查。


推荐阅读