yii2-advanced-app - Yii2:我可以在一个搜索模型中使用多个模型吗?
问题描述
在 Yii2 中,我能否在一个搜索模型中包含两个模型(活动记录)并将它们显示在网格视图中?
例如,我有两个表,“ customers ”和“ customer_contacts ”。
在我的搜索模型中,我使用客户作为我的主要模型,同时我希望“左加入”到CustomerContacts,并最终在 gridview 中显示Customers.name和CustomerContacts.phoneNumber(在 dataProvider 中)。
有人可以指导我吗?
感谢。
解决方案
选项 1:在客户模型中添加此功能:
Public function getCustomerContact(){
Return $this-> hasOne( CustomerContact::className,[customer_id,id]);
}
然后在您的网格视图中,您可以轻松地引用联系人,如下所示:
customerContact.name
请注意,这仅在表之间存在一对一关系时才有效
选项2:(更快但更多挑战)
在数据提供者中,使用查询而不是模型,即 $query = new \yii\db\Query();
然后,您可以在数据提供者中进行所有联接等。它要快得多,但需要更多的专业知识
推荐阅读
- rust - Rust 中的变量不在匹配范围内
- python - 使用嵌套的 for 循环对列表进行排序和比较
- python - 尝试在列表中添加整数时出现连续类型错误?
- numpy - RuntimeError: 给定组=1,大小为 [32, 1, 3, 3] 的权重,预期输入 [1, 3, 6, 7] 有 1 个通道,但有 3 个通道
- node.js - 如何将一个模式作为类型包含在另一个模式中并将数据发布到猫鼬中
- c++ - 如何在类模板之外定义重载运算符?
- javascript - 为变量赋值会显示只读错误
- javascript - 输入类型="datetime-local" valueAsDate 返回 null
- r - 闪亮 - 替换 textInput 字段中的文本
- c# - 在 C# 中,通过 ref 传递值有什么好处?