我试图从ZF REST URL中提取GET参数.这不是当前的请求,我不想调用URL或执行路由,我只需要参数.我正在寻找像parse_url()这样的实用程序函数,但是对于Zend REST格式.有一个,还是我必须重新发明轮子?
我尝试了一些事情,比如创建一个新的Zend_Controller_Request_Http,但参数没有被填充.它是一个有效的HTTP URL.
编辑:根据请求,Zend URL示例:
http://localhost/index/index/param1/foo/param2/bar
Run Code Online (Sandbox Code Playgroud)
所以我只是试图从这个URL中获取param1和param2.
编辑#2:我试过这个,但它似乎不起作用:
$request = new Zend_Controller_Request_Http('http://localhost/home/test/param1/foo/param2/bar');
$front = Zend_Controller_Front::getInstance();
$route = new Zend_Rest_Route($front);
var_dump($route->match($request));
Run Code Online (Sandbox Code Playgroud) 我正在使用流畅的界面来创建Zend DB Select对象/查询.作为查询的一部分,我想选择一个任意字符串,例如"SELECT'foo'AS'type'FROM ...".foo不是一个列,它只是一个字符串文字.
当我选择任意数字时,查询按预期工作.当我将其更改为字符串时,Zend会尝试将foo视为列,并抛出错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'l.foo' in 'field list'
Run Code Online (Sandbox Code Playgroud)
我尝试以各种方式在Zend_Db_Expr中包装字符串,例如:
$select->columns(array('type' => new Zend_Db_Expr('foo')));
Run Code Online (Sandbox Code Playgroud)
这会阻止Zend添加相关名称,但它仍然将其视为列:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'foo' in 'field list'
Run Code Online (Sandbox Code Playgroud)
我觉得我必须在这里遗漏一些明显的东西.我如何告诉Zend停止将其视为一个列?
我一直试图找到一种方法来捕获当前动作中另一个动作的输出(渲染视图)......类似于输出缓冲.
场景是我需要保存报告的"快照".报告中使用的数据不断变化,无论出于何种原因,我需要实际保存视图HTML而不仅仅是数据数组.我创建了一个snapshotAction(),我想以某种方式捕获其中单独的reportAction()的输出.我不想将reportAction()渲染到屏幕上,我希望它在操作完成之前在当前操作中呈现.
在ZF有什么办法吗?
我正在使用类似的东西:
public function snapshotAction () {
$content = $this->view->action('run', 'report');
...etc...
}
Run Code Online (Sandbox Code Playgroud)