首页 > 解决方案 > codeigniter 4,更新模型

问题描述

我将我的 codeigniter 应用程序与 mysql 连接起来。我创建了一个这样的表模型:

<?php namespace App\Models;

use CodeIgniter\Model;

class UserModel extends Model{

    protected $table = 'I_user';
    protected $allowedFields = ['email', 'password','active', 'hash'];

}

现在在我的控制器中,我想通过更改电子邮件来更新用户。怎么做?我的控制器:

<?php namespace App\Controllers;

use App\Models\UserModel;

class Confirm extends BaseController 
{
    public function index($email, $hash)
    {
        if(!isset($email) || !isset($hash)){
            return redirect()->to('/');
        }

        $model = new UserModel();
        $user = $model->where('email', $email)->first();
        if($user['hash'] == $hash){
            // update $user email..
            ??
        }


    }


}

标签: phpcodeigniter

解决方案


你可以这样做:

$model->where('email', $user['email'])->set(['email' => 'YourNewEmailAddress'])->update();

或者

$model->update(['email'=> $user['email']], ['email' => 'YourNewEmailAddress']);

推荐阅读