Повторно писать действие драйвер Соната Admin

Я использую как администратор backoffice Сонату Admin (v 3.43) и у меня есть организация PHP, у которой есть следующее поле:

/**
 * @Assert\NotBlank()
 * @Assert\Image()
 *
 * @ORM\Column(name="imagen", type="string")
 */
private $imagen;

А именно, у меня есть поле в вышеупомянутом классе, который укажет на маршрут изображения (вышеупомянутый маршрут будет хранившимся в BBDD).

Я создал собственный одинокий драйвер, чтобы определять действия создания и стертого места (чтобы так удалять изображение server, когда, если удаляется post).

Проблема тогда в: Как я могу sobrescribir 'предопределенный' метод из-за Сонаты с одним, который определял бы я в драйвере, настроенном для организации?

Я продолжил эти две ссылки, но в обоих то, что относится друг к другу, состоит в том, чтобы создавать новый выбор управления вместо того, чтобы повторно определять уже существующую одну.

https://symfony.com/doc/current/bundles/SonataAdminBundle/cookbook/recipe_custom_action.html

https://stackoverflow.com / questions / 47224076/how-to-create-a-custom-form-using-crud-controller-in-sonata-admin-bundle

0
задан 19.03.2019, 22:01
1 ответ

Уже давно как я не использую Сонату, но верю в способ sobrescribir mГ©todo существующая эра равно как пример, который ты поместил с одним mГ©todo custom.

Собрескрибес эль Креатеактион (например), ты пишешь cГіdigo необходимо, чтобы управлять о них imГЎgenes и звонишь в mГ©todo отец (parent:: CreateAction). Или хороший, ты можешь sobreescribir совсем mГ©todo целиком, если ты предпочитаешь.

class TestAdminController extends CRUDController
{
    public function createAction($id)
    {
        // codigo que necesitas para la imágen

       parent::createAction(); // para que ejecute lo que hace el método create padre de Sonata
    }
}

С другой стороны, если только ты хочешь удалить изображение диска, Вїno - mГЎs просто делать это в travГ©s из событий?

В она definiciГіn класса Admin для каждой организации ты можешь осуществлять события Сонаты. Для организации Тест ты звонишь в событие postUpdate и postRemove и делаешь ahГ - то, в чем ты нуждаешься с ними imГЎgenes без необходимости sobrescribir Controller.

class TestAdmin extends...
{
    public function postUpdate(...)
    {
    // codigo que necesitas 
    }

    public function postRemove(...)
    {
    // codigo que necesitas 
    }
}
1
ответ дан 02.12.2019, 05:27
  • 1
    я встречаюсь с использованием событий postUpdate и postRemove в admin. Он сказал бы тебе, чтобы ты проверил https://sonata-project.org/bundles/admin/3-x/doc/cookbook/recipe_file_uploads.html. – Jakala 20.03.2019, 19:05

Теги

Похожие вопросы