我试图将类别及其子类别显示为一个电子商店,其中有一个下拉列表,依此类推。
我的问题是,我的子类别项根本不显示,也没有错误。
这是我的类别模型代码
class kategorijas extends Model
{
//relācija ar modeli apakskategorijas
public function apakskategorija()
{
return $this->hasMany('apakskategorijas');
}
}
这是我的子类别模型代码
class apakskategorijas extends Model
{
//relācija ar modeli kategorijas
public function kategorija()
{
return $this->belongsTo('kategorijas');
}
}
然后来我的路由控制器代码
public function mainpage()
{
$kat_id = kategorijas::find('id');
$apakskat = apakskategorijas::where('kategorijas_id','=',$kat_id)->get();
$kat = kategorijas::All();
return view ('master',compact('kat','apakskat'));
}
大男孩自己,风景
<div class="kp-menu-container">
<!-- // left menu.... -->
<ul class="main">
@foreach($kat as $kategorijas)
<li><a href="">{{$kategorijas->nosaukums}}</a></li>
@endforeach
</ul>
<!-- // right menu....... -->
<div class="kp-submenu-container">
@foreach($kat as $kategorijas)
<div class="submenu-content">
<h3>{{$kategorijas->nosaukums}}</h3>
<ul>
@foreach((array)$kategorijas->apakskat as $apakskategorijas)
<li><a href="">{{$apakskategorijas->nosaukums}}</a></li>
@endforeach
</ul>
</div>
@endforeach
</div>
</div>
我搜索了很多论坛,在stackoverflow中查看了这里,但是似乎找不到解决方案,这就是为什么我要请大家帮我弄清楚这个问题。
谢谢你们。
如果您需要迁移代码:
类别
public function up()
{
Schema::create('kategorijas', function (Blueprint $table) {
$table->increments('id');
$table->string('nosaukums');
$table->timestamps();
});
}
子类别
public function up()
{
Schema::create('apakskategorijas', function (Blueprint $table) {
$table->increments('id');
$table->string('nosaukums');
$table->integer('kategorijas_id')->unsigned()->index();
$table->foreign('kategorijas_id')->references('id')->on('kategorijas');
$table->timestamps();
});
}
如果要显示带有类别的子类别ID = $kat_id
,请将代码更改为:
@foreach ($apakskat as $apakskategorijas)
如果要显示带有相关子类别的所有类别,请在控制器中加载它们:
$kat = kategorijas::with('apakskategorija')->get();
并遍历视图中的子类别:
@foreach ($kategorijas->apakskategorija as $apakskategorijas)
另外,修复关系:
public function apakskategorija()
{
return $this->hasMany(apakskategorijas::class, 'kategorijas_id');
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句