Как вывести данные из связанной таблицы в Laravel?

Добрый день. Подскажите как вывести записи рубрик, которые находятся в связанной таблице? Возможно, я пошел не по правильному пути, а потому хотелось бы узнать: как правильно реализуется подход вывода данных с двух связанных таблиц?
//модель рубрик
class Rubric extends Model
{
    protected $table = 'rubric';

    public function news ()
    {
        return $this->belongsToMany('App\News', 'news_to_rubric', 'rubric_id', 'article_id', 'id' );

    }
}


//модель новостей

class News extends Model
{
    protected $table = 'news';

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


//Контроллер

class TestController extends Controller
{
    public function index ()
    {
        $items = Rubric::all();
        foreach ($items as $item){
            $item->news;
        }
        return view('test', ['items' => $items]);

    }
}
  • Вопрос задан
  • 4351 просмотр
Решения вопроса 2
usdglander
@usdglander
Yipee-ki-yay
в виде
foreach ($items as $rubric) {
    $rubric->news->map(function ($post) {
        echo $post->title;
        //Ну и остальные поля новости. Какие они там у вас.
    });
}
Ответ написан
@jazzus
В Rubric
public function news()
{
     return $this->belongsToMany('App\News', 'news_to_rubric', 'rubric_id', 'news_id');
}

в контроллере
$rubrics = Rubric::with('news')
                   ->get();

в шаблоне
@foreach ($rubrics as $rubric)
  {{$rubric->name}}
      @foreach ($rubric->news as $news)
           {{ $news->name }}
      @endforeach
@endforeach
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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