PHP Laravel 5制定验证器规则来检查是否存在特定类型的帐户


PHP Laravel 5 Making Validator Rule to check if account with specific type exists

我正在努力制定这个验证规则。在我的"s_accounts"表中,我有两行:acc_name(存储帐户名称(和acc_type(存储帐户类型(。以前,当我只使用一种帐户类型时,我创建了以下验证器规则,以确保acc_name是唯一的:

$rules = array('acc_name' => 'unique:s_accounts,acc_name');
        $input['acc_name'] = $username;
        $validator = Validator::make($input, $rules);
        if ($validator->fails()) {
            // account already exists
        }
        else {
       // proceed
       }

既然我的应用程序可以创建两种类型的帐户,我希望它能够拥有两个具有相同acc_name的帐户,只要acc_type不同。为了做到这一点,我需要更改此验证规则以包括$input['acc_type'] = "X";

我需要帮助的是更改规则数组,以便在存在具有相同acc_name和acc_type的帐户时验证失败,但在存在具有不同acc_type帐户时验证不会失败?

您可以将其作为附加参数添加到unique规则中:

$rules = ['acc_name' => 'unique:s_accounts,acc_name,NULL,id,acc_type,x'];