Yii2.0 后台列表整理(关联查询)

本文介绍了在Yii2.0框架下,如何处理复杂的后台列表展示,特别是涉及多表关联查询和模糊查询的情况。在CRM后台系统的开发中,作者详细分析了班型、期次、班级和负责人等信息如何通过多个表之间的关联来获取,并展示了Search模型和视图文件的实现代码。
摘要由CSDN通过智能技术生成

我们有个关于crm的后台,就是需要写一些列表,他们之间表关系很复杂.......

我们的项目大致是这样的:

下面我就说说上面的班型,期次, 班级, 负责人, 他们都只通过多个表之间的相互关联得到的结果.下面是我手写的分析:

错误更正: 下面途中最后负责人关联是crm_hmy中的contact_id和crm_contact中的contact_id关联得到charger_id,然后crm_contact_中的charger_id中的crm_employee中的id查出truename

Search文件代码如下:

HmyMemberSerach.php文件
class HmyMemberSearch extends HmyMember
{
	//当你进行关联表时,需要查询其他表中的字段时,所有就需要定义你要查询的字段名称
    public $class_no;   
    public $grade_no;

    /**
     * @inheritdoc
     */
    public function rules()
    {
        //当你在后台列表想要搜索哪个字段时,那么首先这个rules里面就带有这个字段
        return [
            [['birthday', 'class_no', 'grade_no', class_id', 'charger_id', 'auth_status'], 'integer'],
            [['truename', 'sex', 'mobile', 'email', 'weixin', 'entry_status'], 'safe'],
            [['corp_name'], 'string']
        ];
    }

 	/**
     * Creates data provider instance with search query applied
     *
     * @param array $params
     *
     * @return ActiveDataProvider
     */
    public function search($params)
    {
    	//我查的是认证状态为1的列表
        $query = HmyMember::find()->where(['crm_hmy.auth_status' => 1]);

        $appName = false;
        $termName = false;
        $contactName = false;
        $employeeName = false;

        try {
            //获取表名
            $termName = Yii::$app->util->getTableName('db', HmyTerm::tableName());
            $className = Yii::$app->util->getTableName('db', HmyClass::tableName());
            $contactName = Yii::$app->util->getTableName('db', Contact::tableName()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值