@Designik_by
SEO, Интернет-маркетинг

Как правильно работать с sql запросами и коллекциями laravel?

$category = Category::select(['id','name','alias','parent_id'])->where('alias',$category)->first();
$sub_cats = Category::select('id')->where('parent_id',$category->id)->get();
				
$articles = Article::select(['id','title','text', 'id_category','id_city'])->where('id_category',$sub_cats->id)->get();

В $category хранится основная категория. В $sub_cats хранятся данные о всех подкатегориях. Как теперь в $articles записать все статьи, у которых категория будет равной одной их полученных подкатегорий в $sub_cats. Не могу придумать как в этот синтаксис цикл включить. или запрос переделать
  • Вопрос задан
  • 390 просмотров
Решения вопроса 1
Почитай про relations https://laravel.com/docs/5.5/eloquent-relationship...
В итоге должно быть что-то вроде этого:

class Category extends Model
{
  public function articles()
  {
    return $this->hasMany(Article::class, 'id_category');
  }
}
//

$subCats = Category::where('parent_id',$category->id)
  ->with('articles')
  ->get();

foreach($subCats as $sub) {
  $sub->articles //все статьи подкатегории
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы