#php #laravel #eloquent
Вопрос:
У меня есть родительская таблица и дочерняя таблица, я смог соединить их с помощью belongsTo
модели.
Child Model
public function item()
{
return $this->belongsTo('AppModelsParentModel', 'parent_id', 'id');
}
Родительская таблица | Child_Table |
---|---|
ID | ID |
сущность | parent_id |
имя элемента | |
item_description |
Что я хочу сделать, так это запросить свою дочернюю таблицу, используя родительскую информацию, но я не могу заставить ее работать
ChildModel::where(item.entity, '$entity')->get();
Ответ №1:
Ваши отношения будут
public function item()
{
return $this->belongsTo(ParentModel::class, 'parent_id', 'id');
}
и в запросе используйте wherehas
для проверки сущности
ChildModel::with('item')->whereHas('item',function($query)use($entity){
$query->where('entity',$entity);
})->get();
Комментарии:
1. о. поэтому вам нужно использовать
with()
то, что я пробовалwhereHas
, но не с помощью с. спасибо за это. **Перезарядка для принятия ответа2. @VincentDapiton без с также работает, но он не возвращает родительскую информацию для каждого