Как отобразить название категории из другой таблицы вместо идентификатора категории - PullRequest
0 голосов
/ 28 июня 2019

У меня есть 2 таблицы - одна с полем имени категории форума с именем "disp_name" и "ID" с именем "forum_cat" и с другой с идентификатором сообщений форума, содержимым сообщения форума и cat_id и другими именами"forum"

У меня есть модель "Forum_cats"

    <?php

    namespace App;

    use Illuminate\Database\Eloquent\Model;

    class Forum_cats extends Model
    {

    protected $table = 'forum_cat';

    public $timestamps = false;

    }

и модель "Forum"

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Forum extends Model
{   

protected $table = 'forum';

public $timestamps = false;

}

Контроллер:

public function index(){


    $forum = Forum::orderBy('timestamp', 'desc')->paginate(20);

//next variable is for different place
    $news = Neww::orderBy('date', 'DESC')->paginate(20);


    return view ('lapas.pamata.index',[
        'news'=>$news,
        'forum'=> $forum,
    ]);
}

Blade:

@foreach($forum as $forums)
          <li>
            <div class="media">
              <div class="media-body"> <a href="#" class="catg_title"> 
              {{$forums->title}}</a> </div>
              <i class="far fa-comment-alt"></i>&nbsp;{{$forums->comments}} 
              Kategorija:{{$forums->cat_id}}
            </div>
          </li>
        @endforeach

так что на данный момент вид такой, где после "Kategorija" у меня есть только идентификатор категории

Как сделать после имени "Kategorija "поле вывода" disp_name "из таблицы" forum_cat ".

Кто-то может сказать, что есть много сообщений о моей проблеме, но я пытаюсь решить эту проблему весь день.Я знаю, что речь идет о hasOne, ownTo и hasMany, но я не понимаю, как исправить их в моем коде.

1 Ответ

0 голосов
/ 28 июня 2019

Итак, я предполагаю (и все еще не уверен), что форум относится к категории.

Ваша модель форума должна быть:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Forum extends Model {   

    protected $table = 'forum';
    public $timestamps = false;

    public category(){
            return $this->belongsTo('App\Forum_cats', 'cat_id', 'id');
    }
}

А ваш клинок должен быть:

@foreach($forum as $forums)
          <li>
            <div class="media">
              <div class="media-body"> <a href="#" class="catg_title"> 
              {{$forums->title}}</a> </div>
              <i class="far fa-comment-alt"></i>&nbsp;{{$forums->comments}} 
              Kategorija:{{$forums->category->disp_name}}
            </div>
          </li>
@endforeach

это работает для вас?Вы также можете рассмотреть нетерпеливые нагрузки:

https://laravel.com/docs/5.8/eloquent-relationships#constraining-eager-loads

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...