是错误还是功能?
我有两个控制器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();
}
}
但是对于请求测试/测试,我再次改变会话变量。
看起来路由索引/索引总是在任何其他路由之前执行。它是一个功能,错误还是某种错误配置?我从官方文档中为多模块应用程序使用标准配置。
答案 0 :(得分:3)
这很可能是因为您的浏览器在后台遇到了/favicon.ico。在不同的框架中,我多次被这种情况所困扰。
尝试添加favicon.ico文件(或阻止该路径的规则)并查看问题是否仍然存在。