0

我有以下功能Website model

    public function update_website_status($id = null,$status ){
        $this->saveField('is_approved',$status,array('website_id' => $id));
}

现在,如果我想从 a 中调用此函数,controller我将如何设置$id$status

我知道这是相当基本的,但我根本无法在 Cake Cookbook (Documentation) 中找到示例。

也是我“搜索”的方式。确保它是正确的website_id是正确的做法吗?

4

2 回答 2

1

试试这样

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

在你的WebsitesController

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

$this->loadModel('Website');
$this->Website->update_website_status($id, $status);
于 2013-10-03T10:28:12.623 回答
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);
}
于 2013-10-03T10:41:32.150 回答