Php 如何搜索&;根据用户id显示相关记录
我是Laravel的初学者,我想在老师登录后显示相关的学生记录。我已经实现了登录页面 这是我的桌子Php 如何搜索&;根据用户id显示相关记录,php,laravel,laravel-5,Php,Laravel,Laravel 5,我是Laravel的初学者,我想在老师登录后显示相关的学生记录。我已经实现了登录页面 这是我的桌子 Teachers +----+--------------+ | id | teacher_name | +----+--------------+ | 1 | John | +----+--------------+ | 2 | Tommy | +----+--------------+ Students +----+-----------
Teachers
+----+--------------+
| id | teacher_name |
+----+--------------+
| 1 | John |
+----+--------------+
| 2 | Tommy |
+----+--------------+
Students
+----+--------------+---------------+------------+
| id | student_name | course | teacher_id |
+----+--------------+---------------+------------+
| 1 | Emma | Learn Laravel | 1 |
+----+--------------+---------------+------------+
| 2 | Olivia | Learn Java | 2 |
+----+--------------+---------------+------------+
| 3 | Charlotte | Learn Laravel | 1 |
+----+--------------+---------------+------------+
通常,我会在会话中获取教师ID,并用PHP执行此查询
SELECT * FROM Teachers, Students WHERE students.teacher_id = '$teacher_id';
如何在教师登录后搜索他的学生信息并将其显示在Laravel 5中的一个简单表格中?在您的
学生
模型中设置以下关系
public function teacher ()
{
return $this->belongsTo(Teacher::class);
}
那么在你的提问中
$teacherId = 123; // Set this
$studentWithTeachers = Student::with('teachers')->where('teacher_id', $teacherId);->get();
正如Gayan在回答中所说,将关系添加到您的模型中应该是您的第一步: 学生模型:
public function teacher ()
{
return $this->belongsTo(Teacher::class);
}
教师模式:
public function students ()
{
return $this->hasMany(Student::class);
}
但与Gayan不同的是,让老师和学生在一起对我来说更有意义:
$teacher = Teacher::with('students')->findOrFail($teacherID);
您需要将techer变量从控制器传递到视图:
return view('example.template', ['teacher', $teacher]);
在刀片模板中,类似于:
<table>
@forelse($teacher->students as $student)
<tr>
<td>{{ $student->name }}</td>
</tr>
@empty
<tr>
<td>No Students found</td>
</tr>
@endforelse
</table>
@forelse($teacher->student as$student)
{{$student->name}
@空的
没有找到学生
@endforelse
您已经设置了教师
和学生
模型了吗?如果您的意思是php artisan make:模型教师
和php artisan make:模型学生
。是的,我有,每个数据库中定义的关系也有?没有…只是默认模型。你应该通过建立关系/外键来规范你的数据库。这也确保了数据的完整性。如何循环浏览所有记录并在主视图中显示?