[英]How to display category name from different table instead of category id
我有2張表格-其中一張的論壇類別名稱字段稱為“ disp_name”,而另一張“ ID”稱為“ forum_cat” , 另一張 具有論壇帖子ID,論壇帖子內容和cat_id, 更名 為“論壇”
我有模型“ Forum_cats”
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Forum_cats extends Model
{
protected $table = 'forum_cat';
public $timestamps = false;
}
和模型“論壇”
<?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,
]);
}
刀:
@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> {{$forums->comments}}
Kategorija:{{$forums->cat_id}}
</div>
</li>
@endforeach
所以目前的視圖是這樣的,在“ Kategorija”之后,我只有類別ID
如何在表“ forum_cat”中以名稱“ Kategorija”為輸出字段“ disp_name”。
有人可以說關於我的問題有很多帖子,但是我整天都在努力解決這個問題。 我知道它關於hasOne,belongsTo和hasMany,但是我不明白我們在我的代碼中如何對它們進行糾正。
因此,我假設(但仍不確定)該論壇屬於某個類別。
您的論壇模型應為:
<?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> {{$forums->comments}}
Kategorija:{{$forums->category->disp_name}}
</div>
</li>
@endforeach
那對你有用嗎? 您還可以考慮渴望負載:
https://laravel.com/docs/5.8/eloquent-relationships#constraining-eager-loads
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.