繁体   English   中英

Laravel子类别和父类别,值未显示

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM