没有ID为0的记录。我正在做
$id = 0; try { $object = $this->MyModel->get($id); } catch(Exception $e){ //Nothing }
但我仍然会抛出异常“表中找不到记录”。
如何忽略不存在给定ID为get($id)的记录并避免异常?
get($id)
nle07wnf1#
$this->MyModel->find('all', ['conditions' => ['id' => $id]])->first();看起来是最短的代码,而不会得到关于元素不存在的错误。另一个问题是,我使用了Exception,而不是正确的\Exception,这就是为什么尽管有try-catch-block,但仍抛出了错误。
$this->MyModel->find('all', ['conditions' => ['id' => $id]])->first();
Exception
\Exception
iswrvxsc2#
您也可以尝试将相关性设为LEFT链接。
LEFT
Insde MyModelTable.php $this->MyModel->belongsTo('ParentTable', [ 'foreignKey' => 'parent_id', 'joinType' => 'LEFT', ]);
eqqqjvef3#
为什么不使用if语句?
$id = 0; $object = []; if ($id){ $object = $this->MyModel->get($id); } else{ $object = []; }
3条答案
按热度按时间nle07wnf1#
$this->MyModel->find('all', ['conditions' => ['id' => $id]])->first();
看起来是最短的代码,而不会得到关于元素不存在的错误。另一个问题是,我使用了
Exception
,而不是正确的\Exception
,这就是为什么尽管有try-catch-block,但仍抛出了错误。iswrvxsc2#
您也可以尝试将相关性设为
LEFT
链接。eqqqjvef3#
为什么不使用if语句?