搜索
首页php框架YIIyii2 hasone怎么用
yii2 hasone怎么用Nov 07, 2019 am 09:57 AM
yii2

Yii2中的表之间的关联有2种,它们用来指定两个模型之间的关联。

yii2 hasone怎么用

一对多:hasMany

一对一:hasOne      (推荐学习:yii教程

返回结果:这两个方法的返回结果都为yii\db\ActiveQuery对象

第一个参数:所关联的模型的类名称。

第二个参数:是一个数组,其中键为所关联的模型中的属性,值为当前模型中的属性。

关联的使用

现在我们获取一个客户的所有的订单信息

$customer = Customer::findOne(1);  
$orders = $customer->orders; // 通过在Customer中定义的关联方法(getOrders())来获取这个客户的所有的订单。

上面的两行代码会生成如下sql语句

SELECT * FROM customer WHERE id=1;  
SELECT * FROM order WHERE customer_id=1;

关联结果缓存

如果客户的订单改变了,我们再重新调用

$orders = $customer->orders;

再次得到订单的时候你会发现没有变化。原因是只会在第一次执行$customer->orders的时候才会去数据库里面查询,然后会把结果缓存起来,以后查询的时候都不会再执行sql。

那么如果我想再次执行sql如何做呢?可以执行

unset($customer->orders);  
$customer->orders;

然后就可以从数据库里面取数据了。

代码说明:

// 执行sql语句: SELECT * FROM customer WHERE id=1  
$customer = Customer::findOne(1);  
//执行sql:SELECT * FROM order WHERE customer_id=1  
$orders1 = $customer->orders;  
//这个不会执行sql,直接使用上面的缓存结果  
$orders2 = $customer->orders;
//如果中间的用户订单有变化,我们就不能从缓存中获取,要unset掉
unset($customer->orders);  
$orders2 = $customer->orders;

以上是yii2 hasone怎么用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在云本地环境中使用YII的最佳实践是什么?在云本地环境中使用YII的最佳实践是什么?Mar 18, 2025 pm 04:39 PM

本文讨论了在云本地环境中部署YII应用程序的最佳实践,并通过集装,编排和安全措施专注于可扩展性,可靠性和效率。

在无服务器体系结构中使用YII的关键注意事项是什么?在无服务器体系结构中使用YII的关键注意事项是什么?Mar 18, 2025 pm 04:33 PM

本文讨论了在无服务器体系结构中使用YII的关键注意事项,专注于无状态,冷启动,功能大小,数据库交互,安全性和监视。它还涵盖优化策略和潜在的综合

如何实现与YII和Websocket的实时数据同步?如何实现与YII和Websocket的实时数据同步?Mar 18, 2025 pm 04:34 PM

本文讨论了使用YII和Websocket实施实时数据同步,涵盖了设置,集成以及绩效和安全性的最佳实践。

用编码对测试YII应用程序的最佳策略是什么?用编码对测试YII应用程序的最佳策略是什么?Mar 18, 2025 pm 04:27 PM

本文讨论了使用编码感应测试YII应用程序的策略,重点是使用内置模块,BDD,不同的测试类型,模拟,CI集成和代码覆盖范围。

YII内置测试框架的主要功能是什么?YII内置测试框架的主要功能是什么?Mar 18, 2025 pm 04:41 PM

YII的内置测试框架可以通过Phpunit集成,灯具管理以及对各种测试类型的支持,改善代码质量和开发实践等功能,从而增强了应用测试。

监视和分析YII应用程序性能的最佳工具是什么?监视和分析YII应用程序性能的最佳工具是什么?Mar 17, 2025 pm 01:52 PM

本文讨论了用于监视和分析YII应用程序性能的工具,包括YII调试工具栏,Blackfire,New Relic,Xdebug和APM解决方案(如Datadog和Dynatrace)。

使用YII构建SaaS应用程序的主要好处是什么?使用YII构建SaaS应用程序的主要好处是什么?Mar 18, 2025 pm 04:25 PM

本文讨论了YII对SaaS开发的好处,专注于绩效,安全性和快速开发功能,以提高可扩展性并缩短市场时间。

在生产中部署YII应用程序的主要考虑因素是什么?在生产中部署YII应用程序的主要考虑因素是什么?Mar 17, 2025 pm 01:58 PM

本文讨论了在生产中部署YII应用程序的关键注意事项,重点是环境设置,配置管理,绩效优化,安全性,日志记录,监视,部署策略和备份/恢复计划。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中