Save() 返回 NULL,不保存数据

Save() returning NULL, Not saving data

我正在尝试将数据保存到订单中 table。但是保存方法returns NULL。我也给了数据。

这是我正在尝试执行的代码。

$OrderData = [
    'order_name' => 56,
    'order_status_id' => '2',
    'order_date' => date('Y-m-d H:i:s'),
    'order_address' => '',
    'order_suburb' => '',
    'order_state' => '',
    'order_postcode' => '',
    'order_country' => '',
    'client_id' => 55
];
$this->loadModel('Orders');
$orderData = $this->Orders->newEntity($OrderData, ['validate' => false]);
debug($this->Orders->save($orderData));die;
var_dump($this->Orders->save($orderData));die;

调试 returns 错误。 var_dump returns 布尔值(假)。 我什至无法检查蛋糕 ORM 生成的 SQL 查询,因为保存方法不是对象。 我正在尝试从登录控制器执行此操作。 $orderData 是一个有数据的实体,它不是空的。

试试这个:

$OrderData = [
    'order_name' => 56,
    'order_status_id' => '2',
    'order_date' => date('Y-m-d H:i:s'),
    'order_address' => '',
    'order_suburb' => '',
    'order_state' => '',
    'order_postcode' => '',
    'order_country' => '',
    'client_id' => 55
];
$this->loadModel('Orders');
$saveData = $this-> Orders->newEntity();
$saveData = $this-> Orders->patchEntity($saveData, $OrderData);
$saveData = $this-> Orders->save($saveData);

尝试 debug($orderData->getErrors()); 以确保实体对象没有验证错误。

直接对实体使用error(),如pr($orderData->errors());die;。然而,$entity->errors() 方法自 3.4.0 起已弃用,应由 $entity->getErrors().

代替

在 CakePHP ['validate' => false] 中,不会验证您的字段(创建或更新时需要的字段)简单我们可以说 validationDefault() 验证不会验证但会验证 buildRules()规则(存在于规则和唯一规则中)。所以我收到一个错误,因为我的 client_id 在客户端 table.

中不存在

我已经使用 errors() 方法调试了我的代码,例如 $orderData->errors();