Cakephp将数据发送到模型函数

Cakephp将数据发送到模型函数,php,cakephp,Php,Cakephp,我的网站模型中有以下功能 public function update_website_status($id = null,$status ){ $this->saveField('is_approved',$status,array('website_id' => $id)); } 现在,如果我希望从控制器调用此函数,我将如何设置$id和$status 我知道这是相当基本的,但我只是在蛋糕食谱(文档)中找不到一个例子 这也是我“搜索”阿卡的方式。确保它是正

我的
网站模型中有以下功能

    public function update_website_status($id = null,$status ){
        $this->saveField('is_approved',$status,array('website_id' => $id));
}
现在,如果我希望从
控制器调用此函数
,我将如何设置
$id
$status

我知道这是相当基本的,但我只是在蛋糕食谱(文档)中找不到一个例子

这也是我“搜索”阿卡的方式。确保它是正确的
网站
\u id做这件事的正确方法?

就这样试试吧

$this->Website->update_website_status($id, $status);
在您的
网站控制器中

如果您想从网站控制器以外的地方调用此函数,只需在调用函数之前加载网站模型,即

$this->loadModel('Website');
$this->Website->update_website_status($id, $status);

如果控制器中已经有网站ID,则可以直接更新网站,如下所示:

public function controller_action() {
    $this->Website->id = $id; // $id has been set somewhere
    $this->Website->saveField('is_approved', $status); // $status has bee set somewhere too
}
如果您希望在模型中使用一个方法,以便可以在多个控制器中调用它,请确保加载模型:

<?php
class FooController extends AppController {

    public $uses = array('Website');
}

如果我使用了$uses=array('Website');,这对其他控制器也有用吗@Marc是的,您也可以使用
$uses
选项
<?php
class Website extends AppModel {

    public function updateWebsiteStatus($id, $approved) {
        $this->id = $id;
        $this->saveField('is_approved', $approved);
    }
}
public function controllerAction() {
    $this->Website->updateWebsiteStatus($id, $approved);
}