php - Yii2在sql查询中使用 "AS variable"并将其显示在 View 中

标签 php mysql yii2

亲爱的同事们! 我有疑问:

$sql = "SELECT node.name,node.node_id,node.lft,(COUNT(prnt.name) - 1) AS depth
            FROM nested_category AS node,
            nested_category AS prnt 
            WHERE node.lft BETWEEN prnt.lft AND prnt.rgt 
            GROUP BY node.name
            ORDER BY node.lft";
                    $item = NodeMenu::findBySql($sql)->all();

我可以像这样显示node.name:

foreach($item as $it =>$i)
    {
       echo $i->name;
    }

问题是如何显示深度? 当我尝试对 node.name 执行相同操作时:

foreach($item as $it =>$i)
    {
       echo $i->depth;
    }

我收到错误异常:数组到字符串的转换。 print_r($item);不包含深度。 请帮助我,我找不到解决方案)

最佳答案

模型中没有变量或魔法属性深度。添加一个,当从查询结果填充模型时,它将被设置。

class NodeMenu extends ... {
    public $depth;

关于php - Yii2在sql查询中使用 "AS variable"并将其显示在 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31079465/

相关文章:

php - 使用 GROUP_CONCAT 选择具备所有技能的候选人

php - 从库中拍照并将图像上传到服务器 swift 4

php - 通过 PHP 加载 Javascript

MySQL UNION 查询语法问题

mysql - 更新查询不更新几行

yii2 - Html::encode() 和 YII2 中的基本 html 代码有什么区别?

Yii2 authclient 不返回用户的电子邮件 ID

javascript - 如何修复 SweetAlert2 中奇怪的成功和错误图标?

php - 正则表达式查找分隔字符串后的所有文本

php - Yii2: scenarios() 模型方法