尝试将数据添加到数据库但得到“错误:调用布尔值上的成员函数save()”

时间:2016-12-02 17:20:12

标签: cakephp

我是cakephp的新手,我正在尝试使用以下代码将数据添加到我的优惠券表中。

在我的UsersController中,我有:

public function addCoupon() {
        if ($this->request->is('post')) {
            if ($this->Coupon->save($this->request->data)) {
                 $this->Session->setFlash(__('The data has been saved'));
            } else {
                $this->Session->setFlash(__('The data could not be saved. Please, try again.'));
            }
        }
}

在我的add_coupon.cpt中,我有:

<?php 
 echo $this->Form->create('Coupon',['url' => ['action' => 'addCoupon']]);
 echo $this->Form->input('coupon_code');
 echo $this->Form->input('expiration_date');
 echo $this->Form->input('discount_amount');
 echo $this->Form->input('usage_limit');
 echo $this->Form->input('domain_limit');
 echo $this->Form->input('description');
 echo $this->Form->input('type');
 echo $this->Form->button('Submit');
 echo $this->Form->end();
?>

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

如果您的模型实际上名为Coupon(单数)而不是Coupons(复数),请尝试在$this->Coupon->save(this->request->data)之前的任何位置添加以下代码行:

$this->loadModel('Coupon');

但是,如果它按照惯例的规定实际命名为Coupons,请将$this->Coupon->save(this->request->data)更改为$this->Coupons->save(this->request->data) 并添加此行:

$this->loadModel('Coupons');

默认情况下,Users控制器仅加载Users模型。如果您使用任何其他模型,则需要load them manually。或者,您可以将所有这些移动到Coupons控制器,它可能在任何地方。