在这里使用CakePHP 2.0.标题有点误导,所以为了清理 - 我有会话数组,当用户将它们添加到购物车时,它会填充产品的ID.所以这个数组就像[0] => 25,[1] => 70等.假设这个数组叫做$ products.
我想问的是,有一些可能通过使用'find'模型的函数('conditions'=> array('Product.id'=> $ products))来获得数组,而不是通过一些模型进行排序.field值(如'order'选项),但是通过$ products数组索引,这样当我在视图中呈现产品内容时,我会将购物车中的所有产品按照用户添加它们的顺序排序.
这是一个例子 - Session数组$产品:
[0] => 35,
[1] => 15,
[2] => 25
Run Code Online (Sandbox Code Playgroud)
然后我将这个数组传递给find函数的条件:
$list = $this->Product->find('all', array('conditions' => array('Product.id' => $products)));
Run Code Online (Sandbox Code Playgroud)
最后$ list给出了按product.id排序的数组.所以不要:
[0] => Array
(
[Product] => Array
(
[id] => 35 )),
[1] => Array
(
[Product] => Array
(
[id] => 15 )),
[2] => Array
(
[Product] => Array
(
[id] => 25 ))
Run Code Online (Sandbox Code Playgroud)
我明白了:
[0] => Array
(
[Product] => …Run Code Online (Sandbox Code Playgroud) 所以我用来查看变量内容的方法是在我的模板工具包中使用Data :: Dumper:
[% USE Dumper %] [% Dumper.dump(varname) %]
但是我得到的结果有点乱 - 关于表关系,列类型和attrbitues等的所有信息.
我想知道是否有一种方法可以获得一个"干净"的变量内容 - 因为只有来自查询的当前结果+相关的结果集(即当我使用带有cakephp框架的php时,有一个'debug(varname)'命令提供了这样的结果,看起来像这样http://pastebin.com/Hut0LnAb).
我正在使用Perl和Catalyst框架,DBIx类作为ORM,TT作为视图,Postgresql作为DB.
我有一个带有'timestamp without timezone'类型的列,如果我在Postgres中进行手动查询,则列值是这样的格式2012-08-30 21:30:14,但是当我在TT视图文件中打印该值时,我得到它2012-08-30T15:03:13,所以很明显它会被格式化但是通过我究竟无法分辨的.
我想使用Template :: Plugin :: Date格式化输出时间戳,但我得到Catalyst错误:
无法渲染模板"xxx/list.tt2:日期错误 - 错误的时间/日期字符串:期望'h:m:sd:m:y'得到:'2012-08-30T21:28:22'"
代码在xxx/list.tt2中 [% date.format(xxx.created) %]
那么我该如何让它发挥作用呢?提前致谢.