我按照本教程在我的奏鸣曲管理员(symfony3)中添加我的图像文件的预览
http://symfony.com/doc/current/bundles/SonataAdminBundle/cookbook/recipe_image_previews.html
但我无法添加CSS parte。图像太大了。
我应该覆盖其中一个奏鸣曲模板吗?如果是,我改变了哪个文件,我该怎么办? [我在sonata / symfony3中很新了]
如果没有,我应该如何在项目中添加css文件?
我的实际代码与教程完全相同:
class ImageAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
// get the current Image instance
$image = $this->getSubject();
// use $fileFieldOptions so we can add other options to the field
$fileFieldOptions = array('required' => false);
if ($image && ($webPath = $image->getWebPath())) {
// get the container so the full path to the image can be set
$container = $this->getConfigurationPool()->getContainer();
$fullPath = $container->get('request')->getBasePath().'/'.$webPath;
// add a 'help' option containing the preview's img tag
$fileFieldOptions['help'] = '<img src="'.$fullPath.'" class="admin-preview" />';
}
$formMapper
// ... other fields ...
->add('file', 'file', $fileFieldOptions)
;
}
// ...
}
答案 0 :(得分:0)
您需要添加一些代码以在Symfony项目中包含CSS文件。类似于
的东西{% stylesheets 'bundles/app/css/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
然后你将教程中的以下CSS放入该文件中。
img.admin-preview {
max-height: 200px;
max-width: 200px;
}
您可以了解有关使用Symfony here包含CSS文件的更多信息。
答案 1 :(得分:0)
首先,你需要制作一个扩展SonataAdminBundle:CRUD:base_edit.html.twig
的模板,这是一个例子:
{# BlastBaseEntitiesBundle:CRUD:edit.html.twig #}
{% extends 'SonataAdminBundle:CRUD:base_edit.html.twig' %}
{# ... #}
然后在Resources / Public / css。
中创建你的css文件执行命令bin/console assets:install
将样式表发布到web / bundles目录。
{# blastcore/css corresponds to BlastCoreBundle/Resources/Public/css and web/bundles/blastcore/js #}
<link rel="stylesheet" href="{{ asset(blastcore/css/style.css) }}" />
http://symfony.com/doc/current/assetic/asset_management.html
现在你需要告诉sonata将你的模板用于你的管理员。 你可以在服务定义中做到这一点:
blast_base_entities.admin.search_index_entity:
class: Blast\BaseEntitiesBundle\Admin\SearchIndexEntityAdmin
arguments: [~, Blast\BaseEntitiesBundle\Entity\SearchIndexEntity, BlastCoreBundle:CRUD]
tags:
- name: sonata.admin
manager_type: orm
group: admin
label: SearchIndexEntity
calls:
- [ setTemplate, [edit, BlastBaseEntitiesBundle:CRUD:edit.html.twig]]