检查 PHP 活动记录是否存在记录集


Check Record Set Exists For PHP Active Record

简而言之,当我使用 php activerecord 拉取记录时,我想在继续之前检查它是否存在。 必须有一种更简单的方法可以做到这一点,因为每种情况似乎都不同,而且我实际上不确定它们中的任何一种是否正常工作。

例如:

$var = 模型::find_by_pk("某物");if (!empty($var)) { ...//record exists }

这会捕获所有异常,还是记录根本不返回单个记录提取的行?

然后我试过这个:

if (count($var->errors) == 0) { ...//records exists }

这似乎适用于结果集,但不适用于单个记录拉取。我收到尝试引用不存在的对象的异常。

我看到了 Model::exists(),但这是否意味着我需要返回并更改我所有的活动记录调用?(http://www.phpactiverecord.org/docs/ActiveRecord/Model#methodexists)?

总而言之,检查php.activerecord结果是否有数据的简单方法(最好是通用和/或防弹)是什么?

应该

足够了

$var = Model::find_by_pk("something");
if($var){
    //winning
}else{
    //not found
}

你不能做if (count($var->errors) == 0)的原因是,当你没有被击中时,$var不是一个对象,所以你不能检查它的errors

请注意,如果您这样做find如果它不存在,您将获得异常,而不仅仅是没有结果:

 try{
     $var = Model::find($id);
 }catch ('Exception $e){
      //not found
 }