微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。