在eloquent返回查询变量中搜索

时间:2017-11-07 12:26:08

标签: laravel eloquent

这是我的问题。请帮忙

我有这两个表课程和学生。学生参加课程。现在我想获得一个如图所示的特定课程,然后在学生表中查看该课程是否由学生参加。

Course table:

id
name
description

Student table:

user_id
course_id
semester
address
phone

我尝试了什么:

    $course = Course::where('name', '=', $data["id"]);

    $enroll= Students::where('course_id', '=', $course["id"]);
    $enroll= Students::where('course_id', '=', $course->id);

    $$result=$course->toArray();
    $enroll= Students::where('course_id', '=', $course["id"]);

我需要搜索存储eloquent查询返回值的变量。

2 个答案:

答案 0 :(得分:0)

对于特定用户和特定课程,您可以使用以下查询从学生表中获取记录集合:

$courceId = 1;
$userId = 1;


$enrolled = Students::where('course_id', $courseId)
  ->where('user_id', $userId)
  ->count() > 0;

$注册将具有真值或假值

答案 1 :(得分:0)

您可以使用雄辩的relationship以更好的方式获得此功能。但是,您可以执行以下操作,假设您的course name$course_name

$course = Course::where('name', '=', $course_name)->first();
if($course!=null){
    $enroll= Students::where('course_id', '=', $course->id)->get();
}

然后你可以check如果它有数据或不喜欢

if($enroll!=[]){
    echo 'this course has been taken by some student';
  }

这里有一些学生是 $ enroll 学生。