V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hbhe  ›  全部回复第 1 页 / 共 1 页
回复总数  1
2019-09-10 09:14:54 +08:00
回复了 894021573 创建的主题 PHP 请教 Yii2 框架 afterSave 的推荐使用方式
这个问题很好,我也一直在思考,一般情况下,我会选第 2 种。
1. 如果 a.save()的时候,必然导致 b.save(),那么就说明这段逻辑关系是固定的,放在 afterSave()中可以被更多的地方复用。
2. 采用 2 时, 在 a.save()时,b,c 会依次 save()或者说依次向上冒泡,向上冒泡的过程要避免再次执行上级的 save(),以免形成递归震荡, 可使用 updateAttributes()来避免。冒泡一般是从底往上冒,什么是底? 一对多时,多的那方的 model 是底,一对一时视业务而定。
3. 一层只管一层,如 a 只管 b, b 只管 c;
4. Model 负责逻辑中心; 而 afterSave()是中心中的中心,应高度重视。后半句个人之见。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2733 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 15:35 · PVG 23:35 · LAX 07:35 · JFK 10:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.