cakePHP(v3.x)、特定のフィールドのみ編集する

今回はcakePHPにおいてBooksというモデルがあったとします。 このBooksはそれぞれSummaryというあらすじを書くためのカラムを持っているとします。特定の本を洗濯したのち、この”Summary”というカラムのみpostDataからコントローラーで保存する時は、

    public function editSummary($book_id){
        $book = $this->Books->get($book_id);
        $connection = ConnectionManager::get('default');
        try{
            if(empty($book)) throw newNotFoundException(__('Book Not Found'));
            if($this->request->is(['post'])){
                $postData = $this->request->getData(); // [ 'summary' => 'this book is super great!' ];
                $this->Books->patchEntity($book, $postData, [
                    'fields' => 'summary',
                ]);
                $this->Books->saveOrFail($book);
                $connection->commit();
                $this->Flash->success(__('Success to edit summary!'));
                return $this->redirect('/edit');
            }
        } catch (\Throwable $e) {
            $connection->rollback();
        }
        $this->set(compact($book));
        return $this->render('/edit');
    }

ポイントはpatchをする時に’fields’で追加するフィールドを指定すること。 公式には’fieldList’を使えって書いてあったのですが、テストを回した時にDeprecated Errorが出たので’fields’にしました。