在表异常中找不到CakePHP忽略记录
purpos上没有ID为0的记录。我在做什么在表异常中找不到CakePHP忽略记录,php,exception,cakephp,cakephp-3.0,Php,Exception,Cakephp,Cakephp 3.0,purpos上没有ID为0的记录。我在做什么 $id = 0; try { $object = $this->MyModel->get($id); } catch(Exception $e){ //Nothing } 我仍然会抛出异常“在表中找不到记录” 我如何忽略,没有具有给定ID的记录,并使用get($ID)避免异常?为什么不使用if语句 $id = 0; $object = []; if ($id){ $object = $this->MyModel-&
$id = 0;
try {
$object = $this->MyModel->get($id);
} catch(Exception $e){
//Nothing
}
我仍然会抛出异常“在表中找不到记录”
我如何忽略,没有具有给定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块,仍会抛出错误。这是否回答了您的问题?此外,这里的特定异常是\Cake\Datasource\exception\RecordNotFoundException
@ndm我也试图捕捉到确切的异常,但没有成功。你读过@Szymon的链接吗?正是这个问题。不,这并不保证另一个id=1231243233不存在。我根本不想出错。