Laravel,调用未定义方法stdClass :: getProf()

问题描述 投票:0回答:1

这是我的第一个Laravel项目,我必须做一个LMS(学习管理系统)。我有一个课程表和一个用户表。

这是我的控制器代码:

public function afficheFormation($id)
    {
        $formation = DB::table('formation')->select('formation.*')->where('id', $id)->first();
        $cours = DB::table('Course')->join('Course_formation', 'course_id', '=', 'Course.id')

            ->select('Course.*')->where('formation_id', $id)->get();


        return view('formation', compact('formation', 'cours'));
    }

这是我的查看代码:

<tr>
 <td class="align-middle">{{ $cours->name }}</td>
 <td class="align-middle">{{ $cours->level}}</td>    
 <td class="align-middle">{{ $cours->user() }}</td>
</tr>
@endforeach
@endif

课程有一个外键Professor_id,我想显示创建该课程的用户名,但是调用了未定义的方法错误,我不知道为什么。

这是我的课程模型:

class Course extends Model 
{

    protected $table = 'cours';
    public $timestamps = true;

    protected $fillable = [
        'name', 'lien', 'type', 'level', 'theme_id', 'prof_id'
    ];

    public function user()
    {
        return $this->hasOne('App\Models\User');
    }
}

这是我的用户模型:

class User extends Authenticatable
{
    use Notifiable;

    protected $table = 'users';
    public $timestamps = true;

    protected $fillable = [
        'pseudo', 'email', 'password', 'name', 'prenom', 'image'
    ];

    public function roles()
    {
          //return $this->belongsToMany('App\Models\Role', 'user_role', 'user_id', 'role_id');
          return $this->belongsToMany(Role::class);
    }

    public function cours()
    {
        return $this->belongsToMany('App\Models\Course', 'professor_id', 'id');
    }
}

感谢您的帮助。

laravel stdclass
1个回答
0
投票

在控制器中尝试这个

$cours = Course::with('cours')
                 ->where('id' , $id)
                 ->get(); 

和课程模型

public function user()
    {
        return $this->hasMany('App\Models\User' , 'prof_id');
    }

在用户模型中

public function cours() {
          return $this->belongsToMany('App\model\Course', 'prof_id', 'id');
    }

关系取决于您,但看起来像这样。希望它会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.