Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Dev: Make getInsertID() more consistent with save()

Aberta
#9,233 4 comentários 1 reação 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
38/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
mariadb, php
Domínio
backend, database

Direção de pesquisa

Leia a thread do fórum e, em seguida, compare o comportamento de save(), insert(), update() e getInsertID() do System Model. Confirme a semântica pretendida do ID afetado antes de alterar qualquer coisa; considera-se concluído quando save() expõe consistentemente o ID esperado tanto para o caminho de inserção quanto para o de atualização, com cobertura para cada caminho.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

PHP Version

8.2, 8.3

CodeIgniter4 Version

latest

CodeIgniter4 Installation Method

Composer (using codeigniter4/appstarter)

Which operating systems have you tested for this bug?

macOS, Linux

Which server did you use?

fpm-fcgi

Database

MaraiaDB

What happened?

Not exactly a bug, but not really a FR either. See this forum thread: https://forum.codeigniter.com/showthread.php?tid=91800&pid=421782#pid421782

Essentially I'm offering to PR a change to \System\Model::update() that would set an instance's $insertID property the same way \System\Model::insert() does so that the behaviour of save() is more consistent.

Currently \System\Model::getInsertID() only returns a value if a save() does an insert. The logic needed to handle that works against the elegance provided by save().

Steps to Reproduce

Use \System\Model::save()

Expected Output

Best case, \System\Model::getInsertID() will return the "affected ID" after \System\Model::save() regardless of which action occurred.

Anything else?

I'm stoked contribute to core, but I didn't want to spend the time on a PR if there is no desire to change this behaviour. Please advise.

I can write the update to the docs too if I'm pointed in the right direction to do so.

Linguagem predominante
PHP
Estrelas
6k
Forks
2k
Merge médio
1d 22h
PRs com merge (30d)
59

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de codeigniter4/CodeIgniter4

Todas as issues de codeigniter4/CodeIgniter4

Issues semelhantes

Mais issues de PHP

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.