php 代码点火器4,更新型号

oyxsuwqo  于 2022-10-30  发布在  PHP
关注(0)|答案(3)|浏览(156)

我把我的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..
            ??
        }

    }

}
k4aesqcs

k4aesqcs1#

你可以这样做:

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

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

bq8i3lrv2#

可以直接使用update对模型数据

$data = [
    'email' => 'Yourupdatedemailhere'
];

$model->update($user['email'], $data);
qij5mzcb

qij5mzcb3#

如果主键在你的数据表中不是“id”,那么你需要在你的模型中提到它。

protected $primaryKey = 'email';

然后用途:

$model->update(['email'=> $user['email']], ['email' => 'newemail@example.com']);

相关问题