2015-08-25 11:21:50 3516次浏览 2条回答 1 悬赏 30 金钱

在 AController里实现了一段功能,想在BController里面调用。
在Yii2里,控制器间互相调用真麻烦,最简单的方法就是写成静态的,但那就有很多属性不能用到。
有没有好的方法。

最佳答案

  • chocoboxxf 发布于 2015-08-25 11:48 举报

    2种情况,一个是AController和BController中有很多功能或属性都是一样的,那可以把公共的放在基类里,让AController和BController去继承。另一个是AController和BController中只有少部分功能或属性两个控制器都会用到,那就把这些单独提取出来,写到一个Model里,或者在Controller和Model之间再定义一个Business类。如果BController的功能必须借助于AController中的属性,那代码实现本身可能有比较大的问题。

    2 条回复
    回复于 2015-08-25 15:36 回复

    本来一开始是写了AController, 好几个业务,用ActiveRecord 保存数据
    后来写到BController时,发现有用到AControllerr 功能,发现不能直接调用,又不想把功能都搬到ActiveRecord里,看来只能是建另一个Model来放需要给其它调用的功能了。

    回复于 2015-09-06 18:21 回复
您需要登录后才可以回答。登录 | 立即注册
bingbin1321
试用期

bingbin1321

注册时间:2011-09-19
最后登录:2015-10-06
在线时长:2小时17分
  • 粉丝2
  • 金钱20
  • 威望0
  • 积分40

热门问题