У меня есть блог с сообщениями, и я использую EasyAdminBundle.Есть blog.creator = user.id.Соответственно есть две сущности.Я хочу, чтобы при создании записи в таблице блога идентификатор авторизованного пользователя указывался в поле blog.creator.Но никто не может редактировать это поле (blog.creator)
Я нашел только один способ сделать это: Настройка, основанная на переопределении стандартного AdminController
// src/Controller/AdminController.php
namespace App\Controller;
use App\Entity\Blog;
use EasyCorp\Bundle\EasyAdminBundle\Controller\EasyAdminController;
class AdminController extends EasyAdminController
{
/**
* @param Blog $entity
*/
public function persistBlogEntity($entity)
{
$entity->setCreator($this->getUser());
parent::persistEntity($entity);
}
}
# config/routes/easy_admin.yaml
easy_admin_bundle:
resource: 'App\Controller\AdminController'
prefix: /admin
type: annotation
Но, думаю, это нехорошо.Использование EasyAdmin основано на создании набора директив в конфигурации.Но для такой обычной вещи я должен использовать заднюю дверь (исключение из генеральной линии).Мне нужно сохранять параметры среды почти в каждой таблице, которую пользователь не должен редактировать.
Если вы знаете, скажите, есть ли более простой способ?