删除函数cakephp3时出错
Error on delete function cakephp3
我有级联删除的问题,我使用默认删除功能并添加了参数 true 以允许级联删除所以如果我 运行:
$this->Users->delete($user,true);
我收到一个致命错误:
Unsupported operand types in
/vendor/cakephp/cakephp/src/ORM/Table.php
on line 1628
如果我运行它没有级联删除的真实参数:
$this->Users->delete($user);
由于外键,我得到一个错误:
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or
update a parent row: a foreign key constraint fails
(real_estate
.customers
, CONSTRAINT fk_customer_users10
FOREIGN
KEY (user_id
) REFERENCES users
(id
) ON DELETE NO ACTION ON
UPDATE NO ACTION)
第一个错误已经告诉你哪里出了问题。
Unsupported operand types
很清楚?不? Check the API.
delete( Cake\Datasource\EntityInterface $entity , array|ArrayAccess $options [] )
它只接受一个数组作为第二个参数。
第二个错误是一个普通的 SQL 错误,要么从数据库中删除约束,要么实现它。如果我没看错,除了要删除的实体中的 id 之外,你还必须传递 user_id。
无需为级联删除添加选项,正如 burzum 所说,您正在将字符串作为数组传递。
删除实体时,关联的数据也会被删除。如果您的 HasOne 和 HasMany 关联被配置为依赖,删除操作也会“级联”到这些实体
// In a Table's initialize method.
$this->hasMany('Comments', [
'dependent' => true,
]);
http://book.cakephp.org/3.0/en/orm/deleting-data.html#cascading-deletes
我有级联删除的问题,我使用默认删除功能并添加了参数 true 以允许级联删除所以如果我 运行:
$this->Users->delete($user,true);
我收到一个致命错误:
Unsupported operand types in /vendor/cakephp/cakephp/src/ORM/Table.php on line 1628
如果我运行它没有级联删除的真实参数:
$this->Users->delete($user);
由于外键,我得到一个错误:
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (
real_estate
.customers
, CONSTRAINTfk_customer_users10
FOREIGN KEY (user_id
) REFERENCESusers
(id
) ON DELETE NO ACTION ON UPDATE NO ACTION)
第一个错误已经告诉你哪里出了问题。
Unsupported operand types
很清楚?不? Check the API.
delete( Cake\Datasource\EntityInterface $entity , array|ArrayAccess $options [] )
它只接受一个数组作为第二个参数。
第二个错误是一个普通的 SQL 错误,要么从数据库中删除约束,要么实现它。如果我没看错,除了要删除的实体中的 id 之外,你还必须传递 user_id。
无需为级联删除添加选项,正如 burzum 所说,您正在将字符串作为数组传递。
删除实体时,关联的数据也会被删除。如果您的 HasOne 和 HasMany 关联被配置为依赖,删除操作也会“级联”到这些实体
// In a Table's initialize method.
$this->hasMany('Comments', [
'dependent' => true,
]);
http://book.cakephp.org/3.0/en/orm/deleting-data.html#cascading-deletes