2013-02-14 2 views
1

у меня есть красноречивая модель Article, которая имеет столбец title_url, который должен быть уникальным, так что не может существовать два article с с тем же title_url. Я не хочу возвращать ошибку, если два таких article s уже существуют, я бы просто хотел изменить свой title_url молча. Таким образом, вместо super-article, это title_url будет super-article-2.Laravel 4: как сделать столбец красноречивой модели уникальной

Как я могу это сделать в Laravel 4? Возможно, используя mutators? Если да, то какой был бы лучший способ?

Имейте в виду, что я хочу, чтобы преобразование title_url происходило тихо и каждый раз, когда это необходимо (обновление, вставка).

ответ

1

In the lastest Beta 4 build of Laravel 4, есть теперь возможность вклиниться создания и обновления событий:

Добавлено Модель :: создания (закрытия) и Model :: обновление (Closure) способы подключения в Eloquent сохранить события. Спасибо Phil Sturgeon за то, что он окончательно надавил на меня ... :)

Таким образом, это будет идеально подходит для того, что вы хотите. Просто создайте крючок в create() вашей модели и создайте простую функцию, которая проверит для title_url, которую вы собираетесь вставить, и если она существует, измените ее на что-то еще, а затем вставьте.

Смежные вопросы