【发布时间】:2016-08-25 14:37:31
【问题描述】:
我有一个 Phalcon volt 模板,我想在我的自定义助手中调用,它会接受一个数组,但发送给助手的数组是字符串类型的。
在我的 list.volt 中有这段代码,
{% set myfolder = data.foldername %}
{% set key = data.folderkey %}
{% set url = convert([myfolder, key]) %}
在 我的 loader.php 中, 我已经声明了 helper 目录并拥有以下代码:
//$params should be single dimensional array
$compiler->addFunction('convert', function($params){
var_dump($params);
return MyCustomHelper::convert($params);
});
将输出 string(31) "array($fname, $fkey)" 而不是数组类型。它使我的助手停止工作。
有人遇到这种情况,我需要它是数组类型而不是字符串吗?
更新:在应用@Nikolay Mihaylov 的建议之后。
出错了
致命错误: 在第 56 行的缓存/volt/%apps%%invo%%views%%test%%list.volt.php 中找不到类“MyCustomUrlHelper”
在我的 services.php 中,我已经包含了我的助手目录
use Modules\Library\MyCustomUrlHelper;
/*
......
Some code here
..............................
....................
*/
$compiler->addFunction('convert', function($resolvedArgs, $exprArgs){
return 'MyCustomUrlHelper::convert('.$resolvedArgs.')';
});
在loader.php中,我已经注册了目录
........
.....................
$loader->registerDirs(array(APP_PATH.'Modules/Library'))->register();
...................
........................
在我的 Modules/Library 目录中,我有这个 MyCustomUrlHelper.php
<?php
namespace Modules\Library;
use Phalcon\Tag;
class MyCustomUrlHelper extends Tag
{
public function convert($params)
{
if(!is_array($params))
{
$params = array($params);
}
/*
..... some code here ...
.................
..........
*/
return $converted;
}
}
?>
我错过了什么吗?
【问题讨论】:
标签: arrays string phalcon volt