CakePHP忽略表中未找到记录异常错误

gblwokeq  于 2022-11-11  发布在  PHP
关注(0)|答案(3)|浏览(118)

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

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

但我仍然会抛出异常“表中找不到记录”。

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

nle07wnf

nle07wnf1#

$this->MyModel->find('all', ['conditions' => ['id' => $id]])->first();看起来是最短的代码,而不会得到关于元素不存在的错误。
另一个问题是,我使用了Exception,而不是正确的\Exception,这就是为什么尽管有try-catch-block,但仍抛出了错误。

iswrvxsc

iswrvxsc2#

您也可以尝试将相关性设为LEFT链接。

Insde MyModelTable.php

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

eqqqjvef3#

为什么不使用if语句?

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

相关问题