你们都没有过控制器互相调用的需求么 [ 2.0 版本 ]
在 AController里实现了一段功能,想在BController里面调用。
在Yii2里,控制器间互相调用真麻烦,最简单的方法就是写成静态的,但那就有很多属性不能用到。
有没有好的方法。
最佳答案
-
chocoboxxf 发布于 2015-08-25 11:48 举报
2种情况,一个是AController和BController中有很多功能或属性都是一样的,那可以把公共的放在基类里,让AController和BController去继承。另一个是AController和BController中只有少部分功能或属性两个控制器都会用到,那就把这些单独提取出来,写到一个Model里,或者在Controller和Model之间再定义一个Business类。如果BController的功能必须借助于AController中的属性,那代码实现本身可能有比较大的问题。
共 2 条回复bingbin1321 回复于 2015-08-25 15:36 回复本来一开始是写了AController, 好几个业务,用ActiveRecord 保存数据
后来写到BController时,发现有用到AControllerr 功能,发现不能直接调用,又不想把功能都搬到ActiveRecord里,看来只能是建另一个Model来放需要给其它调用的功能了。@bingbin1321 http://www.yiiframework.com/doc-2.0/guide-structure-models.html best-practise中描述的很清楚,
bingbin1321
注册时间:2011-09-19
最后登录:2015-10-06
在线时长:2小时17分
最后登录:2015-10-06
在线时长:2小时17分
- 粉丝2
- 金钱20
- 威望0
- 积分40