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',
]);
没有 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',
]);