уникальное имя laravel говорит, что уже занято, если вы редактируете / обновляете этот конкретный объект - PullRequest
0 голосов
/ 25 мая 2018

У меня есть таблица Портфели, и вместо того, чтобы показывать идентификатор портфеля в URL, я показываю имя портфеля с помощью getRouteKeyName ().Поэтому я хочу, чтобы имя было уникальным, потому что иначе оно может показывать неправильное портфолио, если оно уже существует.Я установил правила для поля имени, чтобы оно было уникальным.Если я сейчас редактирую / обновляю портфель, он говорит: «Имя уже занято».

Как я могу решить эту проблему?Он должен быть уникальным, но если вы обновляете этот портфель, не меняя имени, это не должно говорить об этом, верно?

Портфель модели:

public function getRouteKeyName()
{
    return 'name';
}

PortfolioRequest:

public function rules()
{
    return [
        'name' => 'required|max:30|unique:portfolios',
    ];
}

1 Ответ

0 голосов
/ 25 мая 2018

Вы должны передать дополнительный атрибут правилам

public function rules()
{
    return [
        'name' => 'required|max:30|unique:portfolios,name,'.$name.
    ];
}

$name - это переменная, которую вы хотите пропустить.

Надеюсь, это поможет

...