Cakephp将数据发送到模型函数

时间:2013-10-03 09:59:56

标签: php cakephp

我的Website model

中有以下功能
    public function update_website_status($id = null,$status ){
        $this->saveField('is_approved',$status,array('website_id' => $id));
}

现在,如果我希望从controller调用此功能,我将如何设置$id$status

我知道这是相当基本但我在Cake Cookbook(文档)中找不到一个例子。

也是我“搜索”的方式。确保正确的website _ id是正确的做法吗?

2 个答案:

答案 0 :(得分:1)

试试这个

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

WebsitesController

如果你想在网站控制器之外调用此功能,只需在调用该函数之前加载网站模型,即

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

答案 1 :(得分:1)

如果您的控制器中已有网站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');
}

然后按照

创建模型方法
<?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);
}