在控制器的 show 函数中从 Laravel 中的两个表中获取数据?
Fetching data from two tables in Laravel in show function in controller?
我有两个Model, School, Student 关系是, School has Many Student
//学生模型
public function school()
{
return $this->belongsTo('App\School');
}
和School Model一样下面是关系函数
public function student()
{
return $this->hasMany('App\Student');
}
现在我有一个显示页面,我想显示以下信息。 (school_name,school_code) 来自学校 table 和所有来自学生 Table.using 的学生信息 show function in student controller if I pass as
public function show($id)
{
$student=Student::find($id);
$school=School::find($id);
return View::make('student.show')->with(['school'=> $school,'student'=>$student]);
}
它从学校获取数据,如果 school_id ==$id 但一所学校有很多学生,如果我单击以显示 ID 为 109 的按钮,它会失败,如何编写加入查询以获取 school_code 和 school_name 来自学校 table.
不确定为什么要使用相同的 $id
来获取学生和学校
public function show($id)
{
$student = Student::find($id);
$school = $student->school; //school of the student
return View::make('student.show')->with(['school'=> $school,'student'=>$student]);
}
使用此代码
你的模型应该是这样的
public function students()
{
return $this->hasMany('App\Student');
}
你要这样改
$student = Student::find($id);
$school = $student->school;
由于您已经建立了关系,您可以使用 Eloquent 获取单个学生及其所属学校的数据,如下所示:
public function show($id)
{
$student = Student::with('school')->where('id', $id)->first();
return View::make('student.show')->compact('student);
}
现在您可以检索数据 show.blade.php
如下:
@foreach($student as $stud)
<li> {{ $stud->student_name}}</li>
<li> {{ $stud->student_code}}</li>
<li> {{ $stud->->school->school->name}}</li>
<li> {{ $stud->school->school_name }}</li>
@ndforeach
我有两个Model, School, Student 关系是, School has Many Student //学生模型
public function school()
{
return $this->belongsTo('App\School');
}
和School Model一样下面是关系函数
public function student()
{
return $this->hasMany('App\Student');
}
现在我有一个显示页面,我想显示以下信息。 (school_name,school_code) 来自学校 table 和所有来自学生 Table.using 的学生信息 show function in student controller if I pass as
public function show($id)
{
$student=Student::find($id);
$school=School::find($id);
return View::make('student.show')->with(['school'=> $school,'student'=>$student]);
}
它从学校获取数据,如果 school_id ==$id 但一所学校有很多学生,如果我单击以显示 ID 为 109 的按钮,它会失败,如何编写加入查询以获取 school_code 和 school_name 来自学校 table.
不确定为什么要使用相同的 $id
来获取学生和学校
public function show($id)
{
$student = Student::find($id);
$school = $student->school; //school of the student
return View::make('student.show')->with(['school'=> $school,'student'=>$student]);
}
使用此代码
你的模型应该是这样的
public function students()
{
return $this->hasMany('App\Student');
}
你要这样改
$student = Student::find($id);
$school = $student->school;
由于您已经建立了关系,您可以使用 Eloquent 获取单个学生及其所属学校的数据,如下所示:
public function show($id)
{
$student = Student::with('school')->where('id', $id)->first();
return View::make('student.show')->compact('student);
}
现在您可以检索数据 show.blade.php
如下:
@foreach($student as $stud)
<li> {{ $stud->student_name}}</li>
<li> {{ $stud->student_code}}</li>
<li> {{ $stud->->school->school->name}}</li>
<li> {{ $stud->school->school_name }}</li>
@ndforeach