我在这里遇到一个但错综复杂的问题,我会尽力解释它。
首先我有3个模型,Course
,Student
和Quiz
,
我有以下查询:
$course = Course::whereSlug($slug)->first(); // Some Course
$quizzes = $course->students()->with('quizzes'); // <-- Here lies the problem.
在最后一句中,我想编辑此查询,如下所示:
$quizzes = $course->students()->with('quizzes)->where('course_id', $course->id);
我想这样做是因为我只想抓住与Student
模型和Course
模型相关的测验。
为了全面了解,之后我循环浏览vue组件中的$students
变量:
<div v-for="student in students"></div>
我正在使用Student
模型进行循环因为我还检索了除测验之外的其他属性。
但当然,当我这样查询时,我最终会检索所有course_id
= $course_id
的学生的所有问题。
必需
我想过滤结果以获得学生仅的测验,如果他们有course_id
任何当前课程的ID。
答案 0 :(得分:1)
您可以使用whereHas
功能完成工作,如下所示:
$quizzes = $course
->students()
->whereHas('quizzes', function($q){
$q->where('course_id', $course->id);
})
->with('quizzes)
->get();
我认为如果您遵循惯例,则应该Quiz
模型与students
和course
交叉检查,它由您决定。您可以在Laravel Documentation上找到更多信息。希望这可以解决您的问题。
答案 1 :(得分:0)
当然,在我发布问题之后,我在网上随机找到答案,这里是:
import pandas as pd
df = pd.read_csv('location/filename.csv')
df['Name'] = df['Name'].apply(lambda x: x.capitalize())
print(df['Name'].unique()) #Now you will get all the unique names.