我有以下cakephp查询:
$this->request->data = $this->AnsMatrixLubrication->find('all', array(
'conditions' => array('eq_model' => $eq_model)
));
输出是这样的:
Array (
[0] => Array (
[AnsMatrixLubrication] => Array (
[id] => 228
[matrix_lubrication_id] => 1
[eq_model] => D11 R
[A] => x
[B] => x
[C] => x
[D] => x
[E] => x
[F] => x
[G] => x
[H] => x
[created] => 2014-08-15 20:40:06
[modified] => 2014-08-15 20:40:06
)
)
[1] => Array (
[AnsMatrixLubrication] => Array (
[id] => 229
[matrix_lubrication_id] => 2
[eq_model] => D11 R
[A] => y
[B] => y
[C] => y
[D] => y
[E] => y
[F] => y
[G] => y
[H] => y
[created] => 2014-08-15 20:40:06
[modified] => 2014-08-15 20:40:06
)
)
)
但我需要Cake naming convention中的输出,我的意思是[Model][0][field_name]
为什么find
方法没有显示CakePHP命名约定中的输出?如果它应该是默认行为,我该如何解决?
修改
CakePHP版本:2.4.6
提前致谢。
答案 0 :(得分:0)
如图in the documentation所示,它是查找全部呼叫的预期返回格式:
致电查询('所有')的结果将采用以下形式:
Array
(
[0] => Array
(
[ModelName] => Array
(
[id] => 83
[field1] => value1
[field2] => value2
[field3] => value3
)
[AssociatedModelName] => Array
(
[id] => 1
[field1] => value1
[field2] => value2
[field3] => value3
)
)
)
docs you've linked to用于表单字段的命名约定(强调添加):
如果您需要使用相同的字段名称指定多个字段,从而创建一个可以使用saveAll()一次性保存的数组,请使用以下约定:
echo $this->Form->input('Modelname.0.fieldname');
echo $this->Form->input('Modelname.1.fieldname');
这没有引用find-all返回的数据结构(尽管例如,如果发布了一条关于发表了多条评论的评论 - 评论数据将采用您当前期望的格式)。
答案 1 :(得分:0)
以下链接解决了我的问题。
http://nuts-and-bolts-of-cakephp.com/2008/10/27/editing-multiple-records-with-saveall/
使用函数Set::combine()
,我可以将find('all')
输出转换为表单字段约定。
非常感谢你的帮助。