Phalcon PhP - 是否有用于 model::find 的 EOF

Phalcon PhP - is there an EOF for model::find

提问人:André Luiz 提问时间:8/30/2016 最后编辑:Nikolay MihaylovAndré Luiz 更新时间:9/2/2016 访问量:339

问:

我正在编写一段代码,在其中我想知道查找的结果是否为空。这是我的一段代码:

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_listhas_files.volt

PHP Phalcon Eof Phalcon-ORM

评论


答:

1赞 Nikolay Mihaylov 8/30/2016 #1

这实际上很奇怪。using 或任何其他 ORM 方法在失败时返回,但 using 不会。findFirstfalsefind

在您的案例中,一个简单的解决方法是在结果集上使用该方法: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,我不认为这是一个错误,而是预期的行为。 返回一个空的(一个可循环的对象),它意味着要遍历。例如;如果这样做,它将得到你假定的值。findResultsetInterface$findResultset->getFirst()false