codeigniter4 / codeigniter4/CodeIgniter4

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

オープン
#9,233 コメント 4 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
PHP
スター
6k
フォーク
2k
平均マージ
1日 11時間
マージ済み PR(30日)
73

説明

### 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.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

フォーラムのスレッドを読み、その後 System Model の save()、insert()、update()、getInsertID() の動作を比較します。何かを変更する前に、対象 ID の意図されたセマンティクスを確認してください。save() が insert パスと update パスの両方で期待される ID を一貫して公開し、各パスのカバレッジがある状態を完了とします。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
mariadb, php
領域
backend, database
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。