从其子级或Controller中调用AppModel类中的方法

时间:2013-12-12 19:18:16

标签: php class cakephp inheritance

您好,这是我的AppModel.php类

<?php
App::uses('Model', 'Model');
class AppModel extends Model{


    static public function message()
    {
        return 'this is a message';
    }

}

我有我的模型User.php

<? 
class User extends AppModel {

}

和我的控制器UsersController.php

class UsersController extends AppController
{
 public function index()
    {
        $this->layout ='main';
}

}

我的问题是,如何从UsersController中的AppModel类或至少在我的模型用户中调用方法message()?

1 个答案:

答案 0 :(得分:2)

您可以像使用任何静态方法一样调用它

AppModel::message();

虽然,我建议不要将它用作静态。在您的控制器中,绝对在您的模型中,您将拥有一个扩展AppModel的模型实例。所以如果你改变了

/*static*/ public function message()
{
    return 'this is a message';
}

然后你可以在像

这样的控制器中调用它
$this->User->message();

并在

的用户模型中
$this->message();

我们正在使用它时,将其更改为protected,这样只有孩子才能使用该功能。