如何在 Laravel 刀片文件中的嵌套集自定义函数中传递控制器数据值

问题描述

在下面找到控制器代码和刀片文件代码,

测试和工作

控制器代码:

$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.'">&nbsp;'.$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.'">&nbsp;'.$category->name.'</label> <br> </li>';
            }
        $traverse($category->children,$prefix.'-');
        }
    };
    
    $traverse($nodes);
    
    @endphp

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...