Koresh Создал плагин и вот обнаружил что url (slug) можно повторять. Он не проверяется на уникальность. Вот эта ячейка в БД: $table->string('slug'); Как сделать проверку на уникальность?
reazzon Koresh В модель необходимо добавить Validation трейт, который дает возможность делать все возможные валидации полей перед сохранением. Делается это так: В модель, например Item добавляется трейт 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 ]; Готово. Теперь если ты попробуешь сохранить модель из любого места CMS будет проходить обязательная валидация. Подробнее о возможных правилах валидации тут: https://octobercms.com/docs/services/validation#available-validation-rules
Koresh Спасибо! Работает. Там только ошибка синтаксическая в вашем коде, нужно слеш поставить в начале: use \October\Rain\Database\Traits\Validation;