- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 Foo Controller 中有一个需要参数的 Action 方法:
public function fooAction($one, $two) {
$a = one;
$b = $two;
}
我需要从某个 Boo Controller 的其他方法转发到该方法。其中一个参数必须是引用参数。唯一的例子 the manual有是这样的:
$result = $this->forward()->dispatch('Boo\Controller\Boo', array('action' => 'boo'));
没有任何附加参数。但是他们写道:
$params is an optional array of parameters with which to see a RouteMatch object for purposes of this specific request.
所以,我试过:
$result = $this->forward()->dispatch('Boo\Controller\Boo', array(
'action' => 'boo',
'one' => &$one,
'two' => $two,
));
但它不起作用。
有什么方法可以将额外的参数传递给正向 Controller 吗?
更新:
这些也不起作用:
$result = $this->forward()->dispatch('Boo\Controller\Boo', array(
'action' => 'boo',
'params' => array(
'one' => &$one,
'two' => $two,
)));
$result = $this->forward()->dispatch('Boo\Controller\Boo', array(
'action' => 'boo',
'options' => array(
'one' => &$one,
'two' => $two,
)));
更新 2:
我仍然无法获得我想要的功能(使用 forward
插件传递参数),但我找到了其他解决方案。在调用 forward
插件之前,我将变量设置为 Request
对象,在 forward
之后,我从 Request
中获取它们> 在我的 boo 操作中我的 Boo\Controller\BooController:
// in Foo::fooAction
$this->getRequest()->one = &$one;
$this->getRequest()->two = $two;
$result = $this->forward()->dispatch('Boo\Controller\Boo', array('action' => 'boo'));
// in Boo::booAction
$a = $this->getRequest()->one;
$b = $this->getRequest()->two;
愚蠢的解决方案,它不适用于 Ajax 请求。仍然对如何使用 forward 插件传递参数感兴趣。或者如何在 booAction 中获取它们。因为如果我用 forward
传递它们,Request
中没有任何内容。
UPD 3 和最终版本:
我终于找到了他们决定隐藏我通过 forward
插件传递的参数的位置。他们将它们放在 RouteMatch
对象中。
- 试着猜猜我们把你的参数藏在哪里了......哦,是的,它们在 RouteMatch
中,它们当然在那里,你不觉得还有其他的吗?
手册的forward
插件部分没有任何信息!
要获取参数,我必须在我的 BooController::booAction
中执行此操作:
$param = $this->getEvent()->getRouteMatch()->getParam('nameOfParam');
最佳答案
为什么不使用 params 插件?
这对我有用:
public function indexAction() {
$object = new SomeObject();
return $this->forward()->dispatch('Application\Controller\Index', [
'action' => 'show',
'myObject' => $object,
]);
}
public function showAction() {
$object = $this->params('myObject');
var_dump($object);
return [];
}
关于php - ZF2 : How to pass parameters to forward plugin which I can then get in the method I forward them to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13766039/
我是一名优秀的程序员,十分优秀!