码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Yii2 关联查询结果AR对象 如何取到表以外的字段


    一、

    model模型中重写 fields 方法

    public function fields()
    {
        $fields = parent::fields();
        $fields['store_id']  = 'store_id';
        $fields['name']  = 'name';
        $fields['username']  = 'username';
        $fields['password']  = 'password';
        $fields['integral']  = 'integral';
        $fields['email']  = 'email';
        return $fields;
    }

    二、

    给model模型增加相对应的成员属性,然后重写 attributes 方法

    class user extends \yii\db\ActiveRecord
    

    {

    public $store_id;
    public $name;
    public $username;
    public $password;
    public $integral;
    public $email;
    public function rules(){}
    

    ...

    ...

    public function attributes()
    {
        $keys = parent::attributes();
        $keys[] = 'store_id';
        $keys[] = 'name';
        $keys[] = 'username';
        $keys[] = 'password';
        $keys[] = 'integral';
        $keys[] = 'email';
        return $keys;
    }

    }

    后续再整理一下,可能有点混乱

    例子

    1. namespace app\models;
    2. use Yii;
    3. /**
    4. * This is the model class for table "{{%cat}}".
    5. *
    6. * @property int $id
    7. * @property int $parent_id 上级分类id
    8. * @property string $name 分类名称
    9. * @property integer $sort
    10. * @property int $addtime
    11. * @property int $is_delete
    12. * @property string $child
    13. */
    14. class Cat extends \yii\db\ActiveRecord
    15. {
    16. public $child;
    17. /**
    18. * {@inheritdoc}
    19. */
    20. public static function tableName()
    21. {
    22. return '{{%cat}}';
    23. }
    24. /**
    25. * {@inheritdoc}
    26. */
    27. public function rules()
    28. {
    29. return [
    30. [['parent_id', 'addtime', 'is_delete', 'sort'], 'integer'],
    31. [['name'], 'required'],
    32. [['name'], 'string', 'max' => 255],
    33. ];
    34. }
    35. /**
    36. * {@inheritdoc}
    37. */
    38. public function attributeLabels()
    39. {
    40. return [
    41. 'id' => 'ID',
    42. 'parent_id' => '上级分类id',
    43. 'name' => '分类名称',
    44. 'sort' => '排序,升序',
    45. 'addtime' => 'Addtime',
    46. 'is_delete' => 'Is Delete',
    47. ];
    48. }
    49. public function fields()
    50. {
    51. $fields = parent::fields();
    52. $fields['child'] = 'child';
    53. return $fields;
    54. }
    55. public function attributes()
    56. {
    57. $keys = parent::attributes();
    58. $keys[] = 'child';
    59. return $keys;
    60. }
    61. /**
    62. * [getChildrenList 获取和父级select一致的子级列表{还有完善空间}]
    63. */
    64. public function getChildrenList()
    65. {
    66. $keys = array_keys(array_filter($this->attributes)); // 使用$this->attributes 并不靠谱, 这里需要获取父级的select 都设置了哪些字段
    67. return $this->hasMany(Cat::className(), ['parent_id' => 'id'])->select($keys)->where(['is_delete' => 0])->orderBy('sort,addtime DESC');
    68. }
    69. }
    
                    
  • 相关阅读:
    全量知识系统问题及SmartChat给出的答复 之18 生存拓扑控制+因子分析实现自然语言处理中的特征提取及语义关联
    分布式全局唯一ID生成方案(附源码)
    图像处理技术的综合应用——提取篮球
    C#/VB.NET 读取条码类型及条码在图片中的坐标位置
    C++11(包装器)
    病人预约的分析
    LabVIEW应用开发——控件的使用(一)
    SpringBoot 整合 WebSocket 实现长连接,将数据库中的数据进行推送
    pytorch初学笔记(十二):神经网络基本结构之线性层
    C语言——实用调试技巧——第1篇——(第22篇)
  • 原文地址:https://blog.csdn.net/qq_38032300/article/details/124687031
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号