У меня есть следующие настройки системы администратора с использованием Sonata Admin в моем проекте SF2. Когда я нажимаю «Просмотреть изображение», я хочу показать либо всплывающее окно / наложение с изображением, либо, если проще, новую страницу с изображением. Маршрут для этого настроен как /admin/ayrshireminis/gallery/galleryimage/{id}/view_image
У меня есть этот метод в моем CRUDController, который вводит код:
/**
* preview the image
*
* @return RedirectResponse
*/
public function viewImageAction()
{
// work out which image we are approving based on the ID in the URL
$id = $this->get('request')->get($this->admin->getIdParameter());
$object = $this->admin->getObject($id);
// couldn't find the object
if (!$object) {
throw new NotFoundHttpException(sprintf('unable to find the object with id : %s', $id));
}
return $this->render('SonataAdminBundle::empty_layout.html.twig', array('image' => $object));
}
Как я не могу найти какую-либо документацию Sonata, чтобы понять, как просто отобразить пустую страницу (в макете Sonata Admin) с изображением внутри.
Если вы хотите отобразить пустую страницу с изображением (в макете Sonata Admin):
// src/ACME/YourBundle/Resources/views/empty_layout.html.twig
{% extends "SonataAdminBundle::standard_layout.html.twig" %}
{% block sonata_page_content %}
<img src="{{ image.src }}" />
{% endblock %}
И в вашем контроллере:
return $this->render('ACMEYourBundle::empty_layout.html.twig', array('image' => $object));
Если вы просто хотите пустую страницу без макета администратора, используйте тот же шаблон ветки, но без расширения стандартного макета пакета администрирования sonata.
Других решений пока нет …