2017-05-21 14:15:38 4238次浏览 7条回答 0 悬赏 10 金钱

模型中去调用控制器中的某一个方法怎么调

补充于 2017-05-22 14:06

就是模型验证通过了,我想调用发短信的接口发短信啊!!!

最佳答案

  • 阿江 发布于 2017-05-23 09:34 举报

    先解答你的问题:
    \controllers\MyController.php

    namespace app\controllers;
    class MyController extends Controller{
        public static function fun1{
           echo "fun1";
        }
        public function fun2{
           echo "fun2";
        }
    }
    

    \models\MyModle.php

    class MyModel extends \yii\base\Model{
        public function modelfun{
           //调用控制器中的静态方法fun1()
           \app\controllers\MyController::fun1();
           //调用控制器中的实例方法fun2():先实例化,再调用其方法,不过一般没人这么干!
           $control=new \app\controllers\MyController();
           $control->fun2();
        }
    }
    

    建议:你把发短信的方法移到模型中即可直接调用,一般不会在控制器中去写业务逻辑的!

    1 条回复
    回复于 2017-05-23 10:57 回复

    嗯嗯,我会吸收你的意见的!!

  • 回答于 2017-05-22 08:41 举报

    model 调用控制器方法??一般都是控制器调用model的方法啊?

  • 回答于 2017-05-22 09:03 举报

    模型是类吧,控制器是类吧,控制怎么调模型,模型就怎么调控制器,还有就是你这设计百分百是存在问题的

    2 条回复
    回复于 2017-05-22 09:51 回复

    我觉得200%

    回复于 2017-05-22 11:01 回复

    我觉得是1000%的漏洞

  • 回答于 2017-05-22 09:51 举报

    我觉得200%

  • 回答于 2017-05-22 10:06 举报

    我觉得,你你这个问题可以把你的需求也描述一下,为什么要在模型里调用控制器?是不是把需求分析的太片面化了。你再问问题的时候,同时把你要这么做的最终得到的目的也描述出来,这里很多大牛就会告诉你怎么在模型里调用控制器,同时还会解答你这个需求为什么在模型里调用控制器不是好的做法,用某某其他方法可以更好解决。

    经常看到你提问:你可以先看下这篇文章 提问的智慧:http://www.yiichina.com/topic/5845

  • 回答于 2017-05-22 14:42 举报

    1.你的实现方法真的很蠢
    2.为何要在模型中通过呢?控制器不可以通过吗?
    3.如果你非要在模型中通过,大不了写一个短信接口模型,模型调用模型你总不会不会吧?
    4.又比如你为什么不直接就写个类呢?common\helpers\CodeWafSms.php

    namespace 你的路径
    use 模型
    Class CodeWafSms 
    {
      public static sendSms()
     {
       // 你的代码
     }
    
    }
    
  • 回答于 2017-05-23 08:30 举报

    写个SMS class 分别在 Controller and Model层面调用不就好了。

您需要登录后才可以回答。登录 | 立即注册
Mr_Zhu
见习主管

Mr_Zhu

注册时间:2017-01-16
最后登录:2017-08-04
在线时长:13小时12分
  • 粉丝1
  • 金钱295
  • 威望0
  • 积分425

热门问题