问题描述
在下面找到控制器代码和刀片文件代码,
测试和工作
控制器代码:
$nodes = Category::get()->toTree();
刀片文件代码
Returning Value = 6 {{$data->category_id}}
我需要在下面的 NestedSet Laravel 包的遍历函数中传递这个变量值
@php
$traverse = function ($categories,$prefix = '-') use (&$traverse) {
foreach ($categories as $category) {
if($data->category_id==$category->id) { //How to return Category id Here to Compare ($data->category_id Not returning any value here)
echo $prefix.' <li class="branch"><label><input type="radio" checked name="parent_id"
value="'.$category->id.'"> '.$category->name.'</label> <br> </li>';
}
$traverse($category->children,$prefix.'-');
}
};
$traverse($nodes);
@endphp
无需任何修改,此遍历函数运行良好。
那么如何处理,当我需要传递一个额外的值来从另一个控制器进行比较时?
在此场景中使用 lazychaser/laravel-nestedset
包。
解决方法
已解决
use (&$traverse,&$data_cat_id)
修改为
@php
$data_cat_id = $data->category_id;
$traverse = function ($categories,$prefix = '-') use (&$traverse,&$data_cat_id) {
foreach ($categories as $category) {
if($data_cat_id==$category->id) { //How to return Category id Here to Compare ($data->category_id Not returning any value here)
echo $prefix.' <li class="branch"><label><input type="radio" checked name="parent_id"
value="'.$category->id.'"> '.$category->name.'</label> <br> </li>';
}
$traverse($category->children,$prefix.'-');
}
};
$traverse($nodes);
@endphp