web-dev-qa-db-ja.com

CodeIgniter 4でデータベースに保存した後にIDを挿入する方法

CodeIgniter 4を使用しています。

そしてこのような新しいデータを挿入する、

$data = [
        'username' => 'darth',
        'email'    => '[email protected]'
];

$userModel->save($data);
 _

これはここで述べられています: Codeigniterのモデルリファレンス

挿入をしています。しかし、私は挿入後に挿入されたIDを取得するための参照を見つけていません。

助けてください!前もって感謝します。

5
Encrypted

CI4の場合

$settings = new SettingsModel();
$settingsData = $settings->find(1);

<?php namespace App\Models;

use App\Models\BaseModel;

class SettingsModel extends BaseModel
{
    protected $table      = 'users';
    protected $primaryKey = 'id';
}
 _

$ settings-> find(1);単一の行を返します。それは$ PrimaryKeyとして提供される値が見つかります。

0
Kristian Lake

こんにちは私の場合私はデータを保存するためにCIモデルを使います、そして私のコードは:

 $x=new X();
 $is_insert= $x->save(['name'=>'test','type'=>'ss']);
 if($is_insert)
     $inserted_id=$x->getInsertID()
 _
0

これを克服するには、save()メソッドのシステム/ model.phpを修正しました---

$response = $this->insert($data, false);

// add after the insert() call 
$this->primaryKey = $this->db->insertID();
 _

さて、モデルでは、「$ this->プライマリキー」を参照するだけで、データモデリング機能を維持しながら、必要な情報を提供します。

私はこれをCI開発者に提出するつもりです、うまくいけばそれは追加されるでしょう。

0
user1524671