Я использую как администратор 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
Уже давно как я не использую Сонату, но верю в способ 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
}
}
https://sonata-project.org/bundles/admin/3-x/doc/cookbook/recipe_file_uploads.html
. – Jakala 20.03.2019, 19:05