#mysql #laravel
#mysql #laravel
Вопрос:
Есть таблицы школ и оценок. Каждая школа по умолчанию имеет 10 классов. Но в некоторых школах есть только некоторые оценки. Итак, я создал таблицу, в которой я хочу сохранить скрытые оценки для школы
Теперь я хочу получить школьные оценки, которые являются оценками по умолчанию без скрытых.
Это структура БД:
школы:
id
name
оценки:
id
name
school_hidden_grades:
school_id
grade_id
Комментарии:
1. Что вы имеете в виду под «laravel не имеет отношения»? laravel.com/docs/8.x/eloquent-relationships
2. Отредактируйте свой вопрос и измените заголовок вопроса
Ответ №1:
Вы можете просто сделать это так: школьная модель
public function hiddenGrades( )
{
return $this->belongsToMany(Grade::class,'school_hidden_grades','school_id','grade_id');
}
public function grades( )
{
return $this->hasMany(Grade::class);
}
и чтобы получить скрытые оценки в школах, вы можете просто сделать : $school->hiddenGrades()->get();
Комментарии:
1. Но я хочу получить нескрытые оценки
2. @Behiry, если вы хотите скрыть оценку, вам следует просто добавить логический столбец с именем: isHidden и установить для него значение true / false в таблице оценок. затем, чтобы получить только видимые оценки школы: « $ school-> grades-> where(‘isHidden’, false); «
3. Это верно, если была одна школа, но у каждой школы есть свои скрытые оценки
4. @Behiry, у вас уже есть school_id в таблице оценок, что означает, что оценка принадлежит одной школе
5. Извините за эту ошибку, я ее удалил