不确定这是否是完成所需任务的最佳方式,但这是我的问题。在我的编辑函数视图中,我根据$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'
)
),
我如何才能做到这一点,当我发帖时,改变它的结构会影响蛋糕吗?
据我所知,CakePHP上没有自定义排序数组的内置函数。我想你将不得不用纯PHP来做这件事。https://stackoverflow.com/search?q=custom+排序+数组+php
除非必须动态创建字段,否则我建议您自己添加每个字段。
当我发帖时,改变它的结构会影响蛋糕吗?
不,如果您只是将字段按不同的顺序排列,这不会影响CakePHP。通过POST
发送的数据将在数组$this->data['Expense']
中。使用$this->model->save()
保存数据时,顺序无关紧要。
这毫无意义如果关联数组中的数据顺序导致HTML字段/表单输入。。不管顺序有错,你都做错了
试着使用按键,而不是按顺序循环。或者阅读更多关于关联数组的内容——使用&操纵他们的数据。。。但再次重申,不需要按特定顺序返回数据
编辑:
您可以始终创建一个键数组,然后重复这些键。这可能是一种更干净的订单管理方式。