2016-06-05 23:31:14 3243次浏览 3条回答 0 悬赏 10 金钱

请问,我在控制器里例如:

$st=new Student();
$st->saveSt($stinfo);

然后一直以来,我在model里是这么写的

public function saveSt($stinfo){
  $st=new Student();
  //other code
  $st->stinfo=$stinfo

}

我想在处理复杂逻辑的时候把代码写在model里,但是,这样我是不是实例化了两个对象?,我想用$this->stinfo,但是model里并没有定义这样的类属性。请问正确的姿势该怎么写?

  • 回答于 2016-06-06 09:07 举报

    可以定义静态方法亲~

    public static function saveSt($stinfo){
      $st=new Student();
      //other code
      $st->stinfo=$stinfo
    
    }
    

    然后直接用:
    Student::saveSt($stinfo);

    1 条回复
    回复于 2016-06-06 19:42 回复

    = =对哦,一般大家都是这样写的吗?那除了这种方法,就不能像原生php那样用类似$this->xx的方式不?

  • 回答于 2016-06-07 09:08 举报

    最好不要 $this->function()调用 model 里的方法啊。

    1 条回复
    回复于 2016-06-07 14:14 回复

    为啥?那应该怎么调用;我的意思是,我在controller里实例化一个model类,调用它的一个非静态方法A,传数据进去,我能不能在A方法里直接直接类似原生php那样$this->name,$this->age,然后$this->save()?

  • 回答于 2016-06-07 15:30 举报
    public $stinfo;
    public function saveSt($stinfo){
      //other code
      $this->stinfo=$stinfo
    }
    

    最好不要用什么静态方法,那种不叫模型,那叫面向过程

您需要登录后才可以回答。登录 | 立即注册
皮丘吉尔
助理

皮丘吉尔

注册时间:2016-01-27
最后登录:2016-10-28
在线时长:7小时53分
  • 粉丝1
  • 金钱60
  • 威望0
  • 积分130

热门问题