[英]Laravel display all parent categories as tree for a specific sub-category
[英]Laravel Sub Category and Parent Categories, values not showing
我正在尝试在刀片文件中创建子类别和类别列表视图。 我已经创建了所有必要的东西,但是由于某种原因,我的视图中没有显示任何值。 没有出现任何错误,但是我也没有看到任何值。
这是我的看法
@foreach ($pro_cat as $cat)
<ul class="list-group">
<a data-toggle="collapse" href="#collapseExample" class="card-header list-group-item d-flex justify-content-between align-items-center">
<option value="{{ $cat->id }}">{{ ucwords($cat->name) }}</option>
<span class="badge badge-primary badge-pill">{{ count($pro_cat)}}</span>
</a>
@foreach ($sub_cat as $cat)
@if($sub_cat->cat_id == $pro_cat->id)
<div id="collapseExample" class="collapse">
<ul class="list-group">
<option class="list-group-item" value="{{ $cat->id }}">{{ ucwords($cat->name) }}</option>
</ul>
@endif
</div>
@endforeach
@endforeach
我不确定它是否与视图相关,或者我的控制器中是否有错误,但是为了防止万一,我将控制器附在了下面。 任何帮助将不胜感激
$pro_cat = Pro_cat::where('id', NULL)->get();
$sub_cat = Sub_cat::where('cat_id','!=',NULL)->get();
return view('liturgy.posts.index')->with('pro_cat', $pro_cat)->with('posts', $posts)->with('sub_cat', $sub_cat);
嗯,很简单。 像这样建立你的关系
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model {
public function sub_category()
{
return $this->hasMany(self::class, 'cat_id');
}
public function parent_category()
{
return $this->belongsTo(self::class, 'cat_id');
}
}
然后,在调用模型时,像这样添加with()
$categories = Category::with('sub_category')->get();
return view('someview', compact('categories'));
或者只是在模型上添加`$ with`属性,例如受保护的$ with = ['sub_category','parent_category'];。 这将自动将关系添加到集合中。 观点
@foreach ($categories as $category)
{!! $category->name !!}
@foreach($category->sub_category as $sub_category)
{!! $sub_category->name !!}
@endforeach
@endforeach
将关系添加到您的类别模型:
public function children()
{
return $this->hasMany(self::class, 'cat_id');
}
public function parent()
{
return $this->belongsTo(self::class, 'cat_id');
}
获取在控制器中渴望加载子级关系的类别:
$posts = blahblah...
$categories = Category::with('children')->get();
return return view('liturgy.posts.index', compact('categories', 'posts'));
访问关系,例如视图中的简单属性:
@foreach ($categories as $category)
<ul class="list-group">
<a data-toggle="collapse" href="#collapseExample" class="card-header list-group-item d-flex justify-content-between align-items-center">
<option value="{{ $category->id }}">{{ ucwords($category->name) }}</option>
<span class="badge badge-primary badge-pill">{{ $categories->count() }}</span>
</a>
@foreach ($category->children as $child)
<div id="collapseExample" class="collapse">
<ul class="list-group">
<option class="list-group-item" value="{{ $child->id }}">{{ ucwords($child->name) }}
</option>
</ul>
</div>
@endforeach
</ul>
@endforeach
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.