比如 我在 A ctrl里的 a action里 需要调用 B ctrl的 b action
非 redirect 需要直接切换到那个B ctrl的 b action
比如 我在 A ctrl里的 a action里 需要调用 B ctrl的 b action
非 redirect 需要直接切换到那个B ctrl的 b action
补充 我一直在用 runController 来实现 不知道 对不对
runController是可以的。不过通常碰到这种问题首先应该考虑的是重构。如果一个action需要用另一个action,那么意味着有段代码可以重用,应该把它提取出来,避免通过action来重用。
大概说下 实现方法
具体不知道LZ的疑问是因何产生的
可能的问题1
一个需要登录后才可以访问的action,因为用户没有登录,就直接用 runController 来调用LoginController -> actionLogin() 显示成登录页面效果(URL未变化),但是这样的设计是否符合Yii或者web application的理念呢?恐怕会混乱URL 并 降低SEO效果吧?
可能的问题2
如果只是你说的“调用”,那就是有被重复使用的了,这就要重新考虑你的架构了
就是写一个类 然后继承。现在国内的框架提供一些调用其他Action的函数,我觉得这样并不好。调整架构才是王道!