如果主键未命名为“id”,如何删除记录? (CakePHP 2.x)

时间:2015-12-18 11:12:43

标签: cakephp cakephp-2.x

当我使用名为users_id而不是id的自动增量主键时,如何删除CakePHP 2.x中的记录?

我使用以下代码:

$this->User->delete(12);

但它没有用。

2 个答案:

答案 0 :(得分:4)

您必须在模型中声明将用作主键的字段的名称。例如:

class User extends AppModel {
    // user_id is the field name in the database
    public $primaryKey = 'user_id';
}

现在应该可以使用以下内容:

$this->User->delete(12);

此语法也是允许的:

$this->User->id = 12;
$this->User>delete();

答案 1 :(得分:0)

使用deleteAll()方法,您可以像在查询中一样指定条件。 所以在你的情况下它将是

$this->User->deleteAll(array('User.user_id' => 12));

有关详细信息,请参阅http://book.cakephp.org/2.0/en/models/deleting-data.html