提问人:André Luiz 提问时间:8/30/2016 最后编辑:Nikolay MihaylovAndré Luiz 更新时间:9/2/2016 访问量:339
Phalcon PhP - 是否有用于 model::find 的 EOF
Phalcon PhP - is there an EOF for model::find
问:
我正在编写一段代码,在其中我想知道查找的结果是否为空。这是我的一段代码:
public function signatureAction()
{
$info = $this->session->get('current_quote');
$object_list = ApplicationSignatureFile::find(array('conditions' => 'application_id = ?1 AND quote_id = ?2',
'bind' => [
1 => $info['application_id'],
2 => $info['quote_id'],
]));
$this->view->setVar('object_list', $object_list);
if ($object_list) {
$this->view->setVar('has_files',true);
} else {
$this->view->setVar('has_files',false);
}
}
我还不知道如何检查是否是 EOF,以便我可以更好地设置变量。目前它不起作用。如何在控制器和视图中执行此操作?$object_list
has_files
.volt
答:
1赞
Nikolay Mihaylov
8/30/2016
#1
这实际上很奇怪。using 或任何其他 ORM 方法在失败时返回,但 using 不会。findFirst
false
find
在您的案例中,一个简单的解决方法是在结果集上使用该方法:count
$test = \Models\Objects::find([
'conditions' => 'is_active = 42'
]);
if ($test->count()) {
print('I have records with is_active = 42');
d($test->toArray());
} else {
print('I do not have any records with is_active = 42');
}
评论
0赞
Juri
8/30/2016
我认为这可能是 phalcon 和 php 7 的错误,也有,但没有时间检查是什么原因导致的。
0赞
Nikolay Mihaylov
8/30/2016
@Juri在家中使用 Phalcon 2 和 PHP 5.6 进行了测试。
1赞
Timothy
8/30/2016
@Juri,我不认为这是一个错误,而是预期的行为。 返回一个空的(一个可循环的对象),它意味着要遍历。例如;如果这样做,它将得到你假定的值。find
ResultsetInterface
$findResultset->getFirst()
false
评论