如何在 Laminas 框架构造函数中获取动作名称
How to get action name in Laminas framework constructor
在动作中获取动作名称很简单 - 我可以使用“actionName”参数。
但是有没有办法在Controller的构造函数中获取动作名称?
public function __construct()
{
parent::__construct();
$action = $this->params('actionName');
}
控制器中的构造函数-Class 还不知道调用了哪个动作。但是,您可以扩展 AbstractActionController.php 中的 onDispatch
方法,它被称为 before 任何动作被调用但 after __construct()
-方法被调用。像这样:
<?php
...
use Laminas\Mvc\MvcEvent; # <-- add this
class YourController extends AbstractActionController
{
public function onDispatch(MvcEvent $e)
{
$this->action = $this->params()->fromRoute('action');
// Or somethink like e.g.:
if ($this->params()->fromRoute('action') == 'foo') {
// do something
}
return parent::onDispatch($e);
}
}
在动作中获取动作名称很简单 - 我可以使用“actionName”参数。 但是有没有办法在Controller的构造函数中获取动作名称?
public function __construct()
{
parent::__construct();
$action = $this->params('actionName');
}
控制器中的构造函数-Class 还不知道调用了哪个动作。但是,您可以扩展 AbstractActionController.php 中的 onDispatch
方法,它被称为 before 任何动作被调用但 after __construct()
-方法被调用。像这样:
<?php
...
use Laminas\Mvc\MvcEvent; # <-- add this
class YourController extends AbstractActionController
{
public function onDispatch(MvcEvent $e)
{
$this->action = $this->params()->fromRoute('action');
// Or somethink like e.g.:
if ($this->params()->fromRoute('action') == 'foo') {
// do something
}
return parent::onDispatch($e);
}
}