Php 如何查看字段值在表中是否唯一

Php 如何查看字段值在表中是否唯一,php,yii,Php,Yii,我有一个名为test.php的模型类文件。我有两个字段-功能类型和服务类型。所以,现在我想看到功能类型和服务类型都是唯一的。i、 e功能类型和服务类型不能在多行中相同 我正在为此使用create和update函数。我想让这两个函数都查看函数类型和服务类型是否重复,然后不保存,如果不重复,则保存 我用下面的例子来说明这些行- ID Function type Service Type 1 2

我有一个名为
test.php
的模型类文件。我有两个字段-
功能类型
服务类型
。所以,现在我想看到
功能类型
服务类型
都是唯一的。i、 e
功能类型
服务类型
不能在多行中相同

我正在为此使用create和update函数。我想让这两个函数都查看
函数类型
服务类型
是否重复,然后不保存,如果不重复,则保存

我用下面的例子来说明这些行-

   ID            Function type      Service Type
    1                    2                3
    2                    4                5
    3                    7                8
这必须在Yii框架中完成,而不是在MySQL级别。如何在保存之前进行此验证。请指导我。型号:

function rules(){
      ... // Other rules
      array('service_type','validate_unique_types'),

}

public function validate_unique_types($attribute, $params){

        if(!empty($this->function_type) && !empty($this->service_type)){
            $count = YourModel::model()->count('function_type = :function_type AND service_type = :service_type',array(':function_type'=>$this->function_type, ':service_type'=>$this->service_type));
            if($count){
                $this->addError($attribute, "repeated!!");
            }
        }

}

如果用户输入“服务提示”和“功能类型”,则“验证唯一类型”功能控制数据库中是否存在包含这两个值的任何注册表。

保存前,请检查它是否存在。如果是这样,什么都不要做。如果没有,请保存。你错过了什么?@HamzaKubba不,我能做模型课。我想你是要我在控制器里做这件事。我说得对吗?两种方法都有效。。。我主要是问你问题出在哪里…@HamzaKubba,看,我是在问我是否应该更正一个查询条件,以获取所有函数类型和服务类型的列表,并检查它是否为null,然后将其更新到数据库中。我的问题是我想知道检查数据是否唯一的过程有很多方法。只要你觉得你的代码和结构是干净的,这并不重要。。。我不知道你的结构是什么样的,所以我不能建议代码的理想位置。无论如何,假设您要添加一个FT=5和ST=7的记录。然后检查数据库中FT=5和/或ST=7的任何现有记录(根据需要选择and或or)。如果存在现有记录,则不添加新记录,否则会添加新记录。有意义吗?我发现这个错误:Groupzservicelookup类的对象无法转换为字符串