codeigniter4 / codeigniter4/CodeIgniter4
Dev: Make getInsertID() more consistent with save()
- 主要言語
- 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