我试图将类别及其子类别显示为电子商店,我有一个下拉列表等等。
我的问题是,我的子类别项目根本不显示,并且没有错误。
这是我的分类模型代码
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');
}
看看这个,我在我的网站上做了这个。它会更容易:
public static function getAll(){
$categories = self::with('children')->get();
return $categories->toArray();
}
}
控制器:
public function index(){$ categories = Category :: with('children') - > where(['user_id'=> Auth :: id()]) - > whereNull('parent_id') - > get(); return view('category.index',['categories'=> $ categories-> toArray()]); }视图:
@foreach( \App\Entity\Category::getAll() as $cat)
@if(is_null($cat['parent_id']))
<li><a href="/home/{{ $cat['id'] }}"><i class="icon-gift"></i><span class="px-nav-label"> {{ $cat['title_'.app()->getLocale()] }} </span></a>
@if(isset($cat['children']) && count($cat['children'])>0 )
<ul>
@foreach($cat['children'] as $subCat)
<li><a href="/home/{{ $subCat['id'] }}"><i class="icon-gift"></i><span class="px-nav-label"> {{ $subCat['title_'.app()->getLocale()] }} </span></a></li>
@endforeach
</ul>
@endif
</li>
@endif
@endforeach