CakePHP 忽略 Record not found in table 异常

CakePHP ignore Record not found in table exception

没有 ID 为 0 的记录。我正在做

$id = 0;
try { 
  $object = $this->MyModel->get($id); 
} catch(Exception $e){
  //Nothing
}

而且我仍然抛出异常 "Record not found in table"。

如何忽略给定 ID 为 get($id) 的记录并避免异常?

为什么不使用 if 语句?

$id = 0;
$object = [];
if ($id){
  $object = $this->MyModel->get($id); 
} else{
  $object = [];
}

$this->MyModel->find('all', ['conditions' => ['id' => $id]])->first(); 似乎是最短的代码,不会因元素不存在而出错。

另一个问题是,我使用了 Exception 而不是正确的 \Exception,这就是为什么尽管有 try-catch-block 仍会抛出错误。

您也可以尝试将关系设为 LEFT 联接。

Insde MyModelTable.php

        $this->MyModel->belongsTo('ParentTable', [
            'foreignKey' => 'parent_id',
            'joinType' => 'LEFT',
        ]);