извлекать данные из таблицы на основе чужого ключа Laravel - PullRequest
0 голосов
/ 18 апреля 2019

Итак, у меня есть 2 таблицы, статьи и подкатегории. Они связаны через Eloquent: статьи имеют много подкатегорий, и подкатегории принадлежат статье. Они связаны с внешними ключами как таковыми: в "article" category_id.

Как получить всю статью данных таблицы, где категория "DOG" для примера Извините за абстракцию, но это лучший способ объяснить это? : D

артикул модели

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Articles extends Model
{
    use SoftDeletes;

    public function user() {
        return $this->belongsTo('App\User') ;
    }

    public function sous_categories() {
        return $this->belongsTo('App\SouCategories') ;
    }
}

модель подкатегории

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

class SouCategories extends Model
{
    public function categories() {
        return $this->belongsTo('App\Categories') ;
    }

    public function articles() {
        return $this->hasMany('App\Articles','cat_id') ;
    }
}

в моем контроллере я пытаюсь получить данные, основанные на внешнем ключе в подкатегории и подкатегории foreach. Я создаю массив, такой как mainslider, содержащий статьи, которые имеют определенную подкатегорию

public function index()
{
    $infos = Infos::all();
    $categories = Categories::all();
    $articles=Articles::all();   
    $mainslider=Soucategories::with('articles')->get();
    foreach($mainslider as $record){
        dd($record->articles);
    }
    die();
    return view('frontEnd.homepage',compact('infos','categories','articles','mainslider'));
}

1 Ответ

0 голосов
/ 18 апреля 2019

В соответствии с кодом, который вы опубликовали, это должно быть что-то вроде

Soucategories::where('title', 'DOG')->with('articles')->get();

, похоже, будет только в Soucategory с именем "DOG", поэтому вы можете сделать что-то вроде

Soucategories::where('title', 'DOG')->first()->articles
...