问题描述
我正在制作一个在线学校平台,部分学生可以看到带有其信息的班级。但是相关函数返回此错误:未定义偏移量:0(视图:C:\ xampp \ htdocs \ Onlineschool \ resources \ views \ admin \ student \ ClassReport.blade.PHP)
模型之间存在一些关系 我的模特:
USER(学生和教师),LEVEL(班级),教室。
=>学生和教室(数据透视表)之间存在多对多的关系
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name','email','password','image','level','code_meli',];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password','remember_token',];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',];
public function classroom(){
return $this->hasMany (classroom::class);
}
public function ClassRoomStudent(){
return $this->belongsToMany (classroom::class,'classroom_user','user_id','classroom_id');
}
}
教室:
class classroom extends Model
{
protected $fillable = [
'title','teacher_id','level_id','day','time','price',];
public function Student(){
return $this->belongsToMany (user::class,'classroom_id','user_id');
}
public function level(){
return $this->belongsTo (level::class );
}
public function teacher(){
return $this->belongsTo (user::class );
}
}
级别:
class level extends Model
{
protected $fillable = [
'title',];
public function classroom(){
return $this->hasMany (classroom::class);
}
public function exam(){
return $this->hasMany (exam::class);
}
}
以及我在控制器中的功能
public function MyClasses(){
$student_id=auth ()->user ()->id;
$classrooms=classroom::with ('level','teacher','factor')->wherehas('student',function ($q) use($student_id){
$q->where('id',$student_id);
})->get();
return view ('admin.student.ClassReport',compact ('classrooms','student_id'));
}
最后..我的刀片:
@foreach($classrooms as $class)
<tr>
<td>{{$i++}}</td>
<td>{{$class->title}}</td>
<td>{{$class->teacher[0]->name}}</td>
.
.
.
.
</tr>
@endforeach
解决方法
“课堂”仅属于一位老师,无需使用零索引,只需键入$ class-> teacher-> name