我一直在尝试和尝试很多,但我只是不明白如何实现这一点。这就是我想要实现的。
我正在使用cakephp 3.0,我试图通过在我的控制器中尝试下面的代码来附加$this->request->data
…
$this->data['Leaveregisters'] = array(
'name'=>'another',
'surname'=>'whatever'
);
echo '<pre>';
print_r($this->request->data);
exit;
但我一直低于错误
通知(8):间接修改重载属性AppControllerLeaveregistersController::$data无效
但是,我可以使用下面的代码
附加数据$this->request->data['name'] = 'another';
$this->request->data['surname'] = 'whatever';
但我只是想知道为什么我不能使用array()
实现同样的事情,或者我应该怎么做才能实现这一点?
数组应该发生在相同的数组,如果我做$this->request->data
当前如果我使用下面的代码
$this->request->data('Leaveregisters', [
'name' => 'another',
'surname' => 'whatever asdfa'
]);
echo '<pre>';
print_r($this->request->data);
exit;
它被附加了,但是有了新的键,就像下面我不想要的
Array
(
[leaveregister_user_id] => 2
[leaveregister_num_leaves] => 15
[leaveregister_sdate] => 2016-09-01
[leaveregister_edate] => 2016-09-22
[leaveregister_leave_type] => 1
[leaveregister_status] => 1
[leaveregister_created_date] => 2016-09-20 14:54:29
[leaveregister_modified_date] => 2016-09-20 14:54:29
[Leaveregisters] => Array
(
[name] => another
[surname] => whatever asdfa
)
)
我想要这样的东西…
Array
(
[leaveregister_user_id] => 2
[leaveregister_num_leaves] => 15
[leaveregister_sdate] => 2016-09-01
[leaveregister_edate] => 2016-09-22
[leaveregister_leave_type] => 1
[leaveregister_status] => 1
[leaveregister_created_date] => 2016-09-20 14:54:29
[leaveregister_modified_date] => 2016-09-20 14:54:29
[name] => another
[surname] => whatever asdfa
)
这样我就可以用$this->request->data
保存我的数据有人能指点我吗?
谢谢
CakePHP 3中不再有Controller::$data
属性
Cookbook>附录>X迁移指南> 3.0迁移指南>控制器
唯一正确的方法是访问请求对象,当然你可以设置嵌套的数据,如果你想要同样的方式,即:
$this->request->data['Leaveregisters'] = [
'name' => 'another',
'surname' => 'whatever'
];
或者使用data()
方法:
$this->request->data('Leaveregisters', [
'name' => 'another',
'surname' => 'whatever'
]);
参见
- Cookbook>请求&响应对象>请求体数据
- API> 蛋糕 网络请求::数据()