gpt4 book ai didi

php - 如何避免添加重复的 element.Laravel,PHP

转载 作者:行者123 更新时间:2023-11-29 02:14:15 28 4
gpt4 key购买 nike

马上就有老师了,我要给他们上课。每门类(class)应该只添加一次(而不是两次)。我的代码有效,但仅适用于 id=1element其他类(class) 可以多次附加到老师 。我在 laravel 中编写代码。 (PHP)。我不明白为什么它只适用于第一个元素(类(class)($id=1))。你能帮我吗。我的错误在哪里??先感谢您。这是我的代码。对于一个老师,应该附加许多不同的类(class)。但不是一门类(class)两次!

public function addCourse($id, Request $request) {
$teacher = Teacher::findOrFail($id);
if($teacher->has('courses')->where('id', $request->get('course_id'))->get()->isEmpty()) {
$teacher->courses()->attach($request->get('course_id'));

}
else {
flash()->error('This Course has been added already!')->important();
}


return back();
}

最佳答案

我认为您的查询方式存在问题。

当你这样做时......

$teacher->has('courses')->where('id', $request->get('course_id'))

->where() 仍在查看 teachers 表,而不是 courses 表。我认为您真正想要做的是使用 whereHas 来确定老师是否有该类(class)。

$hasCourse = Teacher::whereHas('courses', function($q) use ($request) {
// Here we can add constraints on the courses table
$q->where('id', $request->get('course_id'));
})->where('id', $id)->exists();

if (! $hasCourse) {
$course = Course::findOrFail($request->get('course_id'));
$course->teacher()->associate($id);
}

关于php - 如何避免添加重复的 element.Laravel,PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42834325/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com