我有一个控制器,它将加载视图部分
public function homePage(){
$categories = Category::all();
$products = Product::all();
return view('cart.index',compact('categories','products'));
}这是视图(基本上是检查子类别,如果有则会显示跳过)
<ul class="list-group list-group-bordered list-group-noicon uppercase">
<li class="list-group-item active">
@foreach($categories as $row)
<a class="dropdown-toggle" href="#">{{$row->name}}</a>
@if({{StapsController::checkSubcategory($row->id)}})
@foreach($subcategories as $sub)
<ul>
<li><a href="#"><span class="size-11 text-muted pull-right">(123)</span> {{$sub->s_name}}</a></li>
</ul>
@endforeach
@else
<li class="list-group-item"><a href="#"><span class="size-11 text-muted pull-right">(189)</span> {{$row->name}}</a></li>
@endif
@endforeach
</li>
</ul> 下面是checkSubcategory方法
public function checkSubcategory($id){
$category = Category::find($id);
$id = $category->id;
$subcategories = DB::table ('subcategories')
->join('categories_subcategories','subcategories.id','=','categories_subcategories.subcategory_id')
->join('categories','categories_subcategories.category_id','=','categories.id')
->where('categories.id','=',$id)
->select('subcategories.name as s_name ')
->get();
return $subcategories;
}但是我在View中调用方法时出现了语法错误?在视图部件中调用..is方法有任何错误,这可能是什么错误?
发布于 2017-03-16 14:08:04
如果checkSubcategory的逻辑在控制器本身中运行良好,则必须将其传输到模型。也就是说,让它成为模型的方法,这样从视图中你就可以做如下的事情:
....
<a class="dropdown-toggle" href="#">{{$row->name}}</a>
@if({{$row->checkSubcategory($row->id);}})
<ul>
....换句话说,在您的Category模型中定义此方法。
发布于 2017-03-16 14:09:01
把你的函数放在其他地方,而不是控制器。在您的例子中,也许是在Category模型中?
然后,在View中,你可以像这样使用你的函数:
$row->checkSubcategory($row->id)不需要使函数成为静态函数。
发布于 2017-03-16 14:12:42
像这样使用关系,并通过对象调用。
public function checkSubcategory()
{
return $this->hasMany('App\subcategories');
}https://stackoverflow.com/questions/42826278
复制相似问题