Для каждого l oop в make: request rules () laravel - PullRequest
1 голос
/ 10 июля 2020

Мне нужно подтвердить название компании и адрес электронной почты, чтобы избежать дублирования записей. Вот что я получил до сих пор

public function rules()
{
    $businesses = Business::all();
    foreach ($businesses as $business) {
        return [
        'name' => 'unique:businesses,name,' . $business->id,
        'email' => 'email|unique:businesses,email,' . $business->id,
        'logo' => 'file|size:5000,' . $business->id,
        'banner' => 'file|size:5000,' . $business->id,
        ];  
    } 
}

, но он по-прежнему возвращает эту ошибку

SQLSTATE [23000]: Нарушение ограничения целостности: 1062 Повторяющаяся запись

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Попробуйте следующее:

public function rules()
{
  return [
      'name' => 'unique:businesses,name,' . $business->id,
      'email' => 'email|unique:businesses,email,' . $business->id,
      'logo' => 'file|size:5000,' . $business->id,
      'banner' => 'file|size:5000,' . $business->id,
      ];  
}

Например : 'name' => 'unique: Business, name,'. $ business-> id,
Пояснение : Здесь businesses - таблица, где поле - name, ожидайте id = $business->id

См. официальная документация здесь

0 голосов
/ 10 июля 2020

Спасибо @ STA

вот что сработало

public function rules()
{
    return [
        'name' => 'unique:businesses,name,',
        'email' => 'email|unique:businesses,email,',
        'logo' => 'file|size:5000,',
        'banner' => 'file|size:5000,',
    ];  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...