システムの仕様上、DBでidの値をオートインクリメントすることができない。 そんな時にCakePHP3でモデルのbeforeSave()を利用してidをインクリメントさせる。 public function beforeSave($event, $entity, $options) { $query = $this->_table->find(); $ret = $query->select(['max_id' => $query->func()->max('id')])->first(); if($entity->isNew()) { $entity->set('id', $ret['max_id'] +1); } }