Создал плагин и вот обнаружил что url (slug) можно повторять. Он не проверяется на уникальность.
Вот эта ячейка в БД: $table->string('slug');
Как сделать проверку на уникальность?
Koresh В модель необходимо добавить Validation трейт, который дает возможность делать все возможные валидации полей перед сохранением.
Делается это так:
October\Rain\Database\Traits\Validation
namespace OctoClub\Tutorial\Models; use Model; /** * Item Model */ class Item extends Model { use \October\Rain\Database\Traits\Validation; // Добавили трейт /** * @var string The database table used by the model. */ public $table = 'octoclub_tutorial_items'; /** * @var array Relations */ public $belongsTo = [ 'category' => ['OctoClub\Tutorial\Models\Category'] ]; }
$rules
protected $rules = [ 'name' => 'required', // Поле "название" обязательно 'slug' => 'required|unique:octoclub_tutorial_items', // Поле "ссылка" обязательно и уникально в таблице octoclub_tutorial_items ];
Спасибо! Работает. Там только ошибка синтаксическая в вашем коде, нужно слеш поставить в начале:
use \October\Rain\Database\Traits\Validation;
Koresh верно. Поправил.