Cakephp 3 使用 array() 追加 $this->request->data - 间接修改重载属性数据不起作用



我一直在尝试和尝试很多,但我只是不明白如何实现这一点。这就是我想要实现的。

我正在使用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> 蛋糕 网络请求::数据()

最新更新