Php 如何搜索&;根据用户id显示相关记录

Php 如何搜索&;根据用户id显示相关记录,php,laravel,laravel-5,Php,Laravel,Laravel 5,我是Laravel的初学者,我想在老师登录后显示相关的学生记录。我已经实现了登录页面 这是我的桌子 Teachers +----+--------------+ | id | teacher_name | +----+--------------+ | 1 | John | +----+--------------+ | 2 | Tommy | +----+--------------+ Students +----+-----------

我是Laravel的初学者,我想在老师登录后显示相关的学生记录。我已经实现了登录页面

这是我的桌子

     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:模型学生
。是的,我有,每个数据库中定义的关系也有?没有…只是默认模型。你应该通过建立关系/外键来规范你的数据库。这也确保了数据的完整性。如何循环浏览所有记录并在主视图中显示?