[英]Laravel retrieve data from multiple tables
它是我的Db结构,我有一个学生表
students
+-------+--------+----------+
|id | name | group_id |
+-------+--------+----------+
|1 | ali | 1 |
|2 | ahmad | 2 |
+-------+--------+----------+
groups
+------+-------------+
|id | group_name |
+------+-------------+
|1 | A |
|2 | B |
+------+-------------+
现在我必须显示来自student
表的名称和来自Groups
group_name
学生控制器
{
$students = Student::orderBy('id', 'desc')->get();
return view('student.index')->with(compact('students'));
}
我的观点
@foreach($students as $student)
<td>{{ $student->name }}</td>
<td {{ $student->group_name }} </td>
请帮助我从使用不同方法尝试但均失败的两个表中检索记录
您需要将关系方法添加到Student
类:
public function group()
{
return $this->belongsTo(Group::class);
}
其中Group
是groups
表的模型类。
然后在控制器中:
{
$students = Student::orderBy('id', 'desc')->with('group')->get();
return view('student.index')->with(compact('students'));
}
并在视图中:
@foreach($students as $student)
<td>{{ $student->name }}</td>
<td {{ $student->group->name }} </td>
一个学生仅属于一组。 因此,学生与小组之间的关系是一对一的。
在Students.php模型中
public function group(){
return $this->hasOne(Group::class,'id','group_id');
}
在视图中,您可以获得组名
@foreach($students as $student)
<td>{{ $student->name }}</td>
<td>{{ $student->group->name }}</td>
@endforeach
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.