cakePHP 3.0.7-烘焙编辑函数无法在patchEntity中执行保存,出现Marshaller::merge()错误

cakePHP 3.0.7-烘焙编辑函数无法在patchEntity中执行保存,出现Marshaller::merge()错误,cakephp,cakephp-bake,Cakephp,Cakephp Bake,成员表上的烘焙编辑函数在保存之前在->patchEntity内异常终止,并出现以下错误: 传递给Cake\ORM\Marshaller::merge()的参数1必须实现接口Cake\Datasource\EntityInterface,给定整数,在第594行的E:\membership\vendor\cakephp\cakephp\src\ORM\Marshaller.php中调用并定义[CORE\src\ORM\Marshaller.php,第416行] 烘焙代码: public functi

成员表上的烘焙编辑函数在保存之前在->patchEntity内异常终止,并出现以下错误:

传递给Cake\ORM\Marshaller::merge()的参数1必须实现接口Cake\Datasource\EntityInterface,给定整数,在第594行的E:\membership\vendor\cakephp\cakephp\src\ORM\Marshaller.php中调用并定义[CORE\src\ORM\Marshaller.php,第416行]

烘焙代码:

public function edit($id = null)
{
    $member = $this->Members->get($id, [
        'contain' => []
    ]);
    if ($this->request->is(['patch', 'post', 'put'])) {
        debug($member);
        debug($this->request->data);
        $member = $this->Members->patchEntity($member, $this->request->data);
        debug($member);
        if ($this->Members->save($member)) {
            $this->Flash->success(__('The member has been saved.'));
            return $this->redirect(['action' => 'index']);
        } else {
            $this->Flash->error(__('The member could not be saved. Please, try again.'));
        }
    }
    $this->set(compact('member'));
    $this->set('_serialize', ['member']);


    $memberTypes = TableRegistry::get('MemberTypes');
    $query = $memberTypes->find('list');
    $data = $query->toArray();
    $this->set('memberTypes', $data);
}
我添加了三条调试语句。两个在->patchentity的使用之前,第三个在->patchentity的使用之后!输出为:

object(App\Model\Entity\Member) {

'id' => (int) 2,
'member_name' => 'Some Name',
'member_address' => 'On Street',
'member_city_state_zip' => 'Some Where, ST 12345',
'member_type' => (int) 2,
'member_first_year' => (int) 1998,
'member_last_paid_year' => (int) 2015,
'member_email' => 'bogus@email.net',
'member_phone' => '975.852.XXXX',
'member_cell' => '975.852.XXXX',
'member_selected' => '1',
'[new]' => false,
'[accessible]' => [
    'member_name' => true,
    'member_address' => true,
    'member_city_state_zip' => true,
    'member_type' => true,
    'member_first_year' => true,
    'member_last_paid_year' => true,
    'member_email' => true,
    'member_phone' => true,
    'member_cell' => true
],
'[dirty]' => [],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[repository]' => 'Members'
}

]

在我看来->patchEntity获得了一个对象和一个数组,但不知何故没有将正确的内容提供给封送员?任何帮助都将不胜感激

提前感谢您的帮助。
GLK

此问题源于更改了字段名及其类型。但是我忘了更改实体::$\u可访问性和表::$验证器设置和表::$规则

我真蠢,嗯?但我确实希望CakePHP3.0.7实际上抛出了一条消息,指出缺少字段问题和验证程序测试错误

无论如何,希望这能帮助别人

[
'id' => '2',
'member_name' => 'Some Name',
'member_address' => 'On Street',
'member_city_state_zip' => 'Some Where, ST 12345',
'member_type' => '2',
'member_first_year' => '1998',
'member_last_paid_year' => '2015',
'member_email' => 'bogus@email.net',
'member_phone' => '975.852.xxxx',
'member_cell' => '975.852.xxxx',
'member_selected' => '1'