【发布时间】:2013-12-22 08:19:24
【问题描述】:
这是错误还是功能?
我有两个控制器 IndexController 和 TestController。
第一个看起来像这样:
class IndexController extends \Phalcon\Mvc\Controller
{
public function indexAction()
{
$products = $this->basket->get('products', []);
$products[] = uniqid('index.index');
$this->basket->set('products', $products);
}
public function testAction()
{
var_dump($this->basket->products);
}
}
我只是用 indexAction 在会话中保存一个数组,然后在 testAction 中显示该数据。
对于 index/test 的第一个请求输出是一个空数组。但是第二个和所有后续请求添加了一个新元素。如果我注释行$this->basket->set('products', $products);,那么下一个索引/测试请求将向数组添加另一个值,但之后不会发生额外的向数组推送。
然后我添加
class TestController extends \Phalcon\Mvc\Controller
{
public function indexAction()
{
$products = $this->basket->get('products', []);
$products[] = uniqid('test.index');
$this->basket->set('products', $products);
die();
}
public function testAction()
{
var_dump($this->basket->products);
die();
}
}
但是对于请求测试/测试,我再次更改会话变量。
看起来路由索引/索引总是在任何其他路由之前执行。它是功能、错误还是某种错误配置?我使用官方文档中的多模块应用程序的标准配置。
【问题讨论】: