在cakePHP中自定义数组排序
不确定这是否是做我需要的事情的最佳方式,但这是我的问题。在我的编辑函数视图中,我根据在cakePHP中自定义数组排序,php,cakephp,Php,Cakephp,不确定这是否是做我需要的事情的最佳方式,但这是我的问题。在我的编辑函数视图中,我根据$this->data->expense中的内容重新创建了一个表单字段,但我需要数组按特定顺序排列,或者字段按错误的顺序生成。这是我拥有的阵列: 'Expense' => array( (int) 0 => array( 'id' => '98', 'date' => '2012-08-23', 'sitename' => '1
$this->data->expense
中的内容重新创建了一个表单字段,但我需要数组按特定顺序排列,或者字段按错误的顺序生成。这是我拥有的阵列:
'Expense' => array(
(int) 0 => array(
'id' => '98',
'date' => '2012-08-23',
'sitename' => '123',
'detail' => 'Breakfast',
'amount' => '100.00',
'miles' => null,
'total' => '100.00',
'expense_claim_id' => '63',
'created' => '2012-08-23 09:08:52',
'modified' => '2012-08-23 09:08:52',
'ExpenseClaim' => array(
'id' => '63',
'user_id' => '3',
'claim_status_id' => '1',
'created' => '2012-08-23 09:08:52',
'modified' => '2012-08-23 10:14:10',
'approved' => false,
'approved_by' => '0',
'date_submitted' => '2012-08-23 09:08:52'
),
'ExpenseCode' => array(
(int) 0 => array(
'id' => '1',
'name' => 'Plane fare',
'code' => '1',
'created' => '2012-07-31 09:52:02',
'modified' => '2012-07-31 09:53:57'
)
)
),
这就是我需要订购的方式(ExpenseCode
)显示在更高的位置:
'Expense' => array(
(int) 0 => array(
'id' => '98',
'date' => '2012-08-23',
'sitename' => '123',
'detail' => 'Breakfast',
'ExpenseCode' => array(
(int) 0 => array(
'id' => '1',
'name' => 'Plane fare',
'code' => '1',
'created' => '2012-07-31 09:52:02',
'modified' => '2012-07-31 09:53:57'
)
),
'amount' => '100.00',
'miles' => null,
'total' => '100.00',
'expense_claim_id' => '63',
'created' => '2012-08-23 09:08:52',
'modified' => '2012-08-23 09:08:52',
'ExpenseClaim' => array(
'id' => '63',
'user_id' => '3',
'claim_status_id' => '1',
'created' => '2012-08-23 09:08:52',
'modified' => '2012-08-23 10:14:10',
'approved' => false,
'approved_by' => '0',
'date_submitted' => '2012-08-23 09:08:52'
)
),
我怎样才能做到这一点,并且在我发布文章时改变它的结构会影响cake吗?据我所知,CakePHP上没有内置函数来自定义数组排序。我想您必须使用纯PHP来实现这一点 除非必须动态创建字段,否则我建议您自己添加每个字段 当我发帖时,改变它的结构会影响蛋糕吗
不,如果您只是将字段按不同的顺序排列,这不会影响CakePHP。通过
POST
发送的数据将在数组$this->data['Expense']
中。使用$this->model->save()
保存数据时,顺序并不重要。这毫无意义如果关联数组中的数据顺序导致HTML字段/表单输入……无论顺序如何,都是错误的。
尝试使用键,而不是按顺序循环。或者阅读更多关于关联数组的信息-使用和操作关联数组的数据有很多有趣/简单的事情要做。。。但再次重申,无需按特定顺序返回数据。
编辑:
您始终可以创建一个键数组并重复这些键。这可能是一种更干净的订单管理方式。您为什么需要它?你不是用键值来调用这些值吗?你需要什么标准来对数组进行排序?同意,在休息并重新访问之后,我重新构造了创建表单帮助器字段的循环,从而按照我需要的顺序创建字段。我把自己绑在数组结构上,试图动态地实现太多内容,而不是硬编码某些永远不会改变的元素。感谢您的输入。同意,在休息并重新访问之后,我重新构造了创建表单帮助器字段的循环,从而按照我需要的顺序创建字段。我把自己绑在数组结构上,试图动态地实现太多内容,而不是硬编码某些永远不会改变的元素。谢谢你的意见。因为这是对实际问题最相关的回答,所以我认为这是正确的。