как выполнить проверку более одного поля в laravel?

#javascript #ajax #laravel

#javascript #ajax #laravel

Вопрос:

Как проверить более одного поля в laravel? например: я хочу, чтобы corporate_id, brand_id или hotel_id не имели одного и того же имени каталога. то есть hotel_id 1 не может иметь 2 имени каталога «По умолчанию».

как сделать такую проверку в laravel? Спасибо

введите описание изображения здесь

Комментарии:

1. что вы пробовали до сих пор?? какова ваша текущая структура кода?? будет легко ответить, зная вашу кодовую базу.

2. оо, это мой контроллер tanyakoding.com/s/d1 и посмотреть tanyakoding.com/s/d2

3. не просто добавляйте картинку .. обновите свой вопрос кодом как кодом.

4. имя каталога??? что вы имеете в виду под этим?

5. извините, имя каталога — это данные в поле заголовка.

Ответ №1:

Я думаю, вы можете использовать пользовательские правила проверки. С этим легко справиться https://laravel.com/docs/8.x/validation#using-rule-objects

 /**
 * Determine if the validation rule passes.
 *
 * @param  string  $attribute
 * @param  array  $value
 * @return bool
 */
public function passes($attribute, $catalogName)
{
    $catalog = Catalog::where('title', $catalogName);
    // corporate_id, brand_id or hotel_id 
    if (Input::get('corporate_id')) {
       $catalog->where('corporate_id', Input::get('corporate_id'));
    }
    if (Input::get('brand_id')) {
       $catalog->where('brand_id', Input::get('brand_id'));
    }
    if (Input::get('hotel_id')) {
       $catalog->where('corporate_id', Input::get('hotel_id'));
    }

    if ($catalog->first()) { 
       return false; 
    }
    else {
       return true;
    }

}