插入记录时候,主键重复,怎么在提交前前端提示,而不是直接弹出数据库错误。 [ 2.0 版本 ]
插入记录时候,主键重复,怎么在提交前前端提示,而不是直接弹出数据库错误。
秀小川 补充于 2017-11-21 22:34
我现在用了rule验证来解决
['username', 'unique', 'targetClass' => 'rbac\models\User', 'message' => '用户名已存在.']
最佳答案
其他 2 个回答
-
use yii\validators\Validator; class SettingValidator extends Validator { protected $ErrorMsg = '主键重复!!'; /** * * 服务端验证 * * @param \yii\base\Model $model * @param string $attribute */ public function validateAttribute($model, $attribute) { $exist = Setting::find()->where([$attribute=>$model->key])->one(); if($exist) { $this->addError($model, $attribute, $this->ErrorMsg); } } /** * * 客户端验证 * * @param \yii\base\Model $model * @param string $attribute * @param \yii\web\View $view * @return null|string */ public function clientValidateAttribute($model, $attribute, $view) { $message = $this->ErrorMsg; return <<<JS messages.push('{$message}'); JS; }
$model->key
key 是你的主键字段!
使用:(模型验证规则里引入)
{ return [ [['name'], SettingValidator::className(),'message'=>1111], ]; }```
共 1 条回复
秀小川
注册时间:2017-08-16
最后登录:2022-05-23
在线时长:20小时47分
最后登录:2022-05-23
在线时长:20小时47分
- 粉丝1
- 金钱455
- 威望0
- 积分655