Php Phalcon 1.3结果集不存储项目中的更改

Php Phalcon 1.3结果集不存储项目中的更改,php,phalcon,Php,Phalcon,有人能解释一下phalcon是如何使用resultset的吗?当我行走时,抛出结果集并更改某些项属性,然后我再次行走抛出-所有更改都丢失 我做错了什么 来自控制器的示例代码: public function testAction() { $content = "<h2>Test update resultset w/o saving data</h2>"; /** @var OrdersItems[] $items */ $items = Ord

有人能解释一下phalcon是如何使用resultset的吗?当我行走时,抛出结果集并更改某些项属性,然后我再次行走抛出-所有更改都丢失

我做错了什么

来自控制器的示例代码:

public function testAction()
{
    $content = "<h2>Test update resultset w/o saving data</h2>";

    /** @var OrdersItems[] $items */
    $items = OrdersItems::find("external_item_id = 'Test'");

    $i = 1;
    foreach ($items as $item) {
        $content .= $item->name . ': supplier_id update from ' . $item->supplier_id . ' to ' . $i++ . "<br />";
        $item->supplier_id = $i;
    }

    $content .= "<hr /><h2>Walk again throw items</h2>";
    foreach ($items as $item) {
        $content .= $item->name . ': supplier_id = ' . $item->supplier_id . "<br />";
    }

    return $this->response->setContent($content);
}

您没有保存更改。我需要在一个进程运行期间获取这些更改,因此无需保存它们。顺便说一句,如果我保存它们-我在这个进程运行时也会得到相同的情况,只有在下一次运行(重新加载)时,我才会得到保存的值,这正是我所要求的
$items=$items->toArray()
和处理表。应该记住在第一次运行时设置的内容;)是-如果我将此作为数组,它将工作,但如果我使用数组:1。我需要控制其他事情,比如在调用的方法2中使用这个参数作为指针/引用。这将需要额外的内存,因为使用resultset的副本对我来说这是不正常的,看起来像是某种错误,但我想可能是我不知道一些魔术/规则phalcon的工作方式如果你想这样使用它,你将被迫克隆/转换或使用其他方法来收集dirsty状态。如果您选择数组,或者在第一次循环运行中解决所有问题,则这取决于您。顺便说一句,您正在打印
$i++
,并在该块中分配
$i
-值将不同。
Test update resultset w/o saving data
Autogenerated item 1: supplier_id update from 5 to 1
Autogenerated item 2: supplier_id update from 4 to 2
Autogenerated item 3: supplier_id update from 3 to 3
Autogenerated item 4: supplier_id update from 2 to 4
Autogenerated item 5: supplier_id update from 1 to 5

Walk again throw items
Autogenerated item 1: supplier_id = 5
Autogenerated item 2: supplier_id = 4
Autogenerated item 3: supplier_id = 3
Autogenerated item 4: supplier_id = 2
Autogenerated item 5: supplier_id = 1