Всем привет. Есть 3 таблицы.
Сразу напишу, PRIMARY ключи id (AI) не связанны между собой!!! Это просто порядковый номер и не более. Почему так? Потому что эти данные были получены по API, где "своя" связь (auto_marks.index < = > auto_models.mark_index и auto_models.index < = > auto_modifications.model_index):
1. auto_marks: - марки автомобилей
- id
- index (имеет прямую связь с auto_models.mark_index)
2. auto_models: - модели автомобилей
- id
- index (имеет прямую связь с auto_modifications.model_index)
- mark_index (имеет обратную связь с auto_marks.index)
3. auto_modifications: - модификации автомобилей
- id
- index
- model_index (имеет обратную связь с auto_models.index)
Собственно в чем вопрос. 3 модели созданы, это понятно. Нужно из первой модели (auto_marks) получить НЕ только количество моделей каждой марки, но нужно еще из первой модели (auto_marks) получить количество модификаций конкретной модели (auto_models). Возможно ли это вообще?
Количество моделей я спокойно получим в 1 модели следующим образом:
class AutoMark extends Model
{
use HasFactory;
public function models()
{
return $this->hasMany(AutoModel::class, 'mark_index', 'index');
}
}
$marks = AutoMark::withCount('models')->get();
foreach($marks as $mark)
{
// ... etc
$mark->models_count; // все отлично выводит
}