gpt4 book ai didi

php - 如何使用 Yii2 检查数据库中的数据是否存在?

转载 作者:行者123 更新时间:2023-12-02 07:22:13 25 4
gpt4 key购买 nike

我正在学习 Yii2,我正在尝试在我的 Yii 基础项目中进行注册。问题是我无法检查我的数据库中用户输入的某些数据(在我的例子中是电子邮件和 url)是否存在,无法为每个用户创建一个唯一的电子邮件。

public function actionRegistration()
{
$model = new RegistrationForm();

if ($model->load(Yii::$app->request->post()) && $model->validate())
{
if (Users::findOne($model->email) !== null)//Doesn't work
$error_email = "That email is taken. Try another.";
if (Users::findOne($model->url) !== null)//Doesn't work
$error_url = "That url is taken. Try another.";

if (!(isset($error_email) || isset($error_url)))
{
$db = new Users();
$db->name = $model->name;
$db->email = $model->email;
$db->password = $model->password;
$db->url = $model->url;
$db->save();
}
else
{
return $this->render('registration',
[
'model' => $model,
'error_email' => $error_email,
'error_url' => $error_url,
]
);
}
}
else
{
return $this->render('registration',
[
'model' => $model,
]
);
}
}

最佳答案

findOne() 基于您应该使用的主键(通常是 id)

Users::findOne(['email' => $model->email]);

或更好

Users::find()->where(['email' => $model->email])->one();

one() 返回模型

你也可以使用 exists()

Users::find()->where(['email' => $model->email])->exists(); 

返回 bool 值

关于php - 如何使用 Yii2 检查数据库中的数据是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42631890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com