CakePHP 3-如何插入没有自动递增主键ID的记录
我使用的是一个旧表架构,它的主键不是标准的自动递增id。相反,主键是VARCHAR(15),格式如下:CakePHP 3-如何插入没有自动递增主键ID的记录,php,cakephp,cakephp-3.0,Php,Cakephp,Cakephp 3.0,我使用的是一个旧表架构,它的主键不是标准的自动递增id。相反,主键是VARCHAR(15),格式如下: ABC10001 ABC10002 ABC10003 ABC10004 ABC10005 是否有方法设置模型表,以便在插入新行时自动生成序列中的下一个ID 是否有方法设置模型表,以便在插入新行时自动生成序列中的下一个ID 使用回调函数并实现一个方法来生成下一个id public function beforeSave(Event $event, EntityInterface $entity
ABC10001
ABC10002
ABC10003
ABC10004
ABC10005
是否有方法设置模型表,以便在插入新行时自动生成序列中的下一个ID
是否有方法设置模型表,以便在插入新行时自动生成序列中的下一个ID
使用回调函数并实现一个方法来生成下一个id
public function beforeSave(Event $event, EntityInterface $entity) {
if ($entity->isNew()) {
$entity->id = $this->generateId();
}
}
public function generateId() {
// Your implementation here.
}
通常,为了生成自定义的新主键值,您可以使用
- 实现/重写
\Cake\Database\type::newId()
- 在相应的表类中重写的
方法,默认情况下,该方法要求与列关联的类型提供新ID(通过\Cake\ORM\Table::\u newId()
)type::newId()
回调Model.beforeSave
- 或者数据库中的触发器
1
看