Octobercms: Как я могу сделать поле повторителя jsonable, потому что я создаю это поле повторителя в другой плагин
Как я могу сделать поле повторителя jsonable, потому что я создаю это поле повторителя в другом плагине и создал свой собственный плагин. Например: я хочу добавить поле повторителя в модели плагина rainlab.user, но я хочу сделать это с помощью моего собственного плагина, чтобы обновления плагина rainlab.user не влияли на мою работу. Спасибо
1 ответ
Решение
Вы должны прочитать о расширении плагинов.
1) Сначала зарегистрируйте события в своем кастоме plugin.php
- пример
2) Добавьте связанные поля в ваш файл миграции - Пример - Убедитесь, что тип поля установлен на json
или же text
: $table->json('field_name')->nullable();
Допустим, вы хотите добавить Dogs
поле повторителя для пользовательской модели;
public function boot()
{
UserModel::extend(function($model)
{
$model->addJsonable([
'dogs',
]);
});
UsersController::extendFormFields(function($form, $model, $context){
if (!$model instanceof UserModel) {
return;
}
$form->addTabFields([
'dogs' => [
'label' => 'My Dogs',
'type' => 'repeater',
'form' => [
'fields' => [
'breed' => [
'label' => 'Breed',
'type' => 'dropdown',
'options' => [
'labrador' => "Labrador",
'cocker' => "Cocker Spaniel"
]
],
'name' => [
'label' => 'Name',
'type' => 'text',
]
],
],
],
]);
});
}