<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Symfony中文教程 &#187; sonata</title>
	<atom:link href="http://www.newlifeclan.com/symfony/archives/tag/sonata/feed" rel="self" type="application/rss+xml" />
	<link>http://www.newlifeclan.com/symfony</link>
	<description>站在巨人肩膀上的phpweb框架</description>
	<lastBuildDate>Fri, 12 Dec 2025 00:58:27 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>SonataAdmin参考指南三配置</title>
		<link>http://www.newlifeclan.com/symfony/archives/520</link>
		<comments>http://www.newlifeclan.com/symfony/archives/520#comments</comments>
		<pubDate>Wed, 03 Jun 2015 12:33:03 +0000</pubDate>
		<dc:creator><![CDATA[napoleon]]></dc:creator>
				<category><![CDATA[博客]]></category>
		<category><![CDATA[sonata]]></category>

		<guid isPermaLink="false">http://www.newlifeclan.com/symfony/?p=520</guid>
		<description><![CDATA[<p>注意：这个页面将很快被删除，因为他的内容正在移动到别的文档。请阅读每个部分的最新文档来完成SonataAdmi [&#8230;]</p>
<p><a rel="nofollow" href="http://www.newlifeclan.com/symfony/archives/520">SonataAdmin参考指南三配置</a>，首发于<a rel="nofollow" href="http://www.newlifeclan.com/symfony">Symfony中文教程</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>注意：这个页面将很快被删除，因为他的内容正在移动到别的文档。请阅读每个部分的最新文档来完成SonataAdminBundle的配置。</p>
<p><span id="more-520"></span></p>
<p>3.配置</p>
<p>3.1配置选项</p>
<ul>
<li>
<dl class="first docutils">
<dt><tt class="docutils literal"><span class="pre">security</span></tt></dt>
<dd>
<ul class="first last">
<li>
<dl class="first docutils">
<dt><tt class="docutils literal"><span class="pre">handler</span></tt></dt>
<dd>
<ul class="first last simple">
<li><tt class="docutils literal"><span class="pre">sonata.admin.security.handler.role</span></tt> : The default value</li>
<li><tt class="docutils literal"><span class="pre">sonata.admin.security.handler.acl</span></tt> : Use this service if you want ACL</li>
</ul>
</dd>
</dl>
</li>
</ul>
</dd>
</dl>
</li>
</ul>
<p>3.2全部配置</p><pre class="crayon-plain-tag"># Default configuration for "SonataAdminBundle"
sonata_admin:
    security:
        handler:              sonata.admin.security.handler.noop
        information:

            # Prototype
            id:                   []
        admin_permissions:

            # Defaults:
            - CREATE
            - LIST
            - DELETE
            - UNDELETE
            - EXPORT
            - OPERATOR
            - MASTER
        object_permissions:

            # Defaults:
            - VIEW
            - EDIT
            - DELETE
            - UNDELETE
            - OPERATOR
            - MASTER
            - OWNER
        acl_user_manager:     null
    title:                'Sonata Admin'
    title_logo:           bundles/sonataadmin/logo_title.png
    options:
        html5_validate:       true
        confirm_exit:         true
        use_select2:          true
        use_icheck:           true
        pager_links:          null
        form_type:            standard
        dropdown_number_groups_per_colums:  2
        title_mode:           ~ # One of "single_text"; "single_image"; "both"
    dashboard:
        groups:

            # Prototype
            id:
                label:                ~
                label_catalogue:      ~
                icon:                 '&lt;i class="fa fa-folder"&gt;&lt;/i&gt;'
                items:
                    admin:                ~
                    label:                ~
                    route:                ~
                    route_params:         []
                item_adds:            []
                roles:                []
        blocks:
            type:                 ~
            roles:                []
            settings:

                # Prototype
                id:                   ~
            position:             right
            class:                col-md-4
    admin_services:
        model_manager:        null
        form_contractor:      null
        show_builder:         null
        list_builder:         null
        datagrid_builder:     null
        translator:           null
        configuration_pool:   null
        route_generator:      null
        validator:            null
        security_handler:     null
        label:                null
        menu_factory:         null
        route_builder:        null
        label_translator_strategy:  null
        pager_type:           null
        templates:
            form:                 []
            filter:               []
            view:

                # Prototype
                id:                   ~
    templates:
        user_block:           'SonataAdminBundle:Core:user_block.html.twig'
        add_block:            'SonataAdminBundle:Core:add_block.html.twig'
        layout:               'SonataAdminBundle::standard_layout.html.twig'
        ajax:                 'SonataAdminBundle::ajax_layout.html.twig'
        dashboard:            'SonataAdminBundle:Core:dashboard.html.twig'
        search:               'SonataAdminBundle:Core:search.html.twig'
        list:                 'SonataAdminBundle:CRUD:list.html.twig'
        filter:               'SonataAdminBundle:Form:filter_admin_fields.html.twig'
        show:                 'SonataAdminBundle:CRUD:show.html.twig'
        show_compare:         'SonataAdminBundle:CRUD:show_compare.html.twig'
        edit:                 'SonataAdminBundle:CRUD:edit.html.twig'
        preview:              'SonataAdminBundle:CRUD:preview.html.twig'
        history:              'SonataAdminBundle:CRUD:history.html.twig'
        acl:                  'SonataAdminBundle:CRUD:acl.html.twig'
        history_revision_timestamp:  'SonataAdminBundle:CRUD:history_revision_timestamp.html.twig'
        action:               'SonataAdminBundle:CRUD:action.html.twig'
        select:               'SonataAdminBundle:CRUD:list__select.html.twig'
        list_block:           'SonataAdminBundle:Block:block_admin_list.html.twig'
        search_result_block:  'SonataAdminBundle:Block:block_search_result.html.twig'
        short_object_description:  'SonataAdminBundle:Helper:short-object-description.html.twig'
        delete:               'SonataAdminBundle:CRUD:delete.html.twig'
        batch:                'SonataAdminBundle:CRUD:list__batch.html.twig'
        batch_confirmation:   'SonataAdminBundle:CRUD:batch_confirmation.html.twig'
        inner_list_row:       'SonataAdminBundle:CRUD:list_inner_row.html.twig'
        outer_list_rows_mosaic:  'SonataAdminBundle:CRUD:list_outer_rows_mosaic.html.twig'
        outer_list_rows_list:  'SonataAdminBundle:CRUD:list_outer_rows_list.html.twig'
        outer_list_rows_tree:  'SonataAdminBundle:CRUD:list_outer_rows_tree.html.twig'
        base_list_field:      'SonataAdminBundle:CRUD:base_list_field.html.twig'
        pager_links:          'SonataAdminBundle:Pager:links.html.twig'
        pager_results:        'SonataAdminBundle:Pager:results.html.twig'
        tab_menu_template:    'SonataAdminBundle:Core:tab_menu_template.html.twig'
        knp_menu_template:    'SonataAdminBundle:Menu:sonata_menu.html.twig'
    assets:
        stylesheets:

            # Defaults:
            - bundles/sonatacore/vendor/bootstrap/dist/css/bootstrap.min.css
            - bundles/sonatacore/vendor/components-font-awesome/css/font-awesome.min.css
            - bundles/sonatacore/vendor/ionicons/css/ionicons.min.css
            - bundles/sonataadmin/vendor/admin-lte/dist/css/AdminLTE.min.css
            - bundles/sonataadmin/vendor/admin-lte/dist/css/skins/skin-black.min.css
            - bundles/sonataadmin/vendor/iCheck/skins/flat/blue.css
            - bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css
            - bundles/sonataadmin/vendor/jqueryui/themes/base/jquery-ui.css
            - bundles/sonatacore/vendor/select2/select2.css
            - bundles/sonatacore/vendor/select2-bootstrap-css/select2-bootstrap.min.css
            - bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/css/bootstrap-editable.css
            - bundles/sonataadmin/css/styles.css
            - bundles/sonataadmin/css/layout.css
            - bundles/sonataadmin/css/tree.css
        javascripts:

            # Defaults:
            - bundles/sonatacore/vendor/jquery/dist/jquery.min.js
            - bundles/sonataadmin/vendor/jquery.scrollTo/jquery.scrollTo.min.js
            - bundles/sonatacore/vendor/moment/min/moment.min.js
            - bundles/sonatacore/vendor/bootstrap/dist/js/bootstrap.min.js
            - bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js
            - bundles/sonataadmin/vendor/jqueryui/ui/minified/jquery-ui.min.js
            - bundles/sonataadmin/vendor/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js
            - bundles/sonataadmin/jquery/jquery.form.js
            - bundles/sonataadmin/jquery/jquery.confirmExit.js
            - bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/js/bootstrap-editable.min.js
            - bundles/sonatacore/vendor/select2/select2.min.js
            - bundles/sonataadmin/vendor/admin-lte/dist/js/app.min.js
            - bundles/sonataadmin/vendor/iCheck/icheck.min.js
            - bundles/sonataadmin/vendor/slimScroll/jquery.slimscroll.min.js
            - bundles/sonataadmin/Admin.js
            - bundles/sonataadmin/treeview.js
    extensions:

        # Prototype
        id:
            admins:               []
            excludes:             []
            implements:           []
            extends:              []
            instanceof:           []
    persist_filters:      false</pre><p>&nbsp;</p>
<p><a rel="nofollow" href="http://www.newlifeclan.com/symfony/archives/520">SonataAdmin参考指南三配置</a>，首发于<a rel="nofollow" href="http://www.newlifeclan.com/symfony">Symfony中文教程</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newlifeclan.com/symfony/archives/520/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SonataAdmin参考指南二入门</title>
		<link>http://www.newlifeclan.com/symfony/archives/517</link>
		<comments>http://www.newlifeclan.com/symfony/archives/517#comments</comments>
		<pubDate>Wed, 03 Jun 2015 11:04:54 +0000</pubDate>
		<dc:creator><![CDATA[napoleon]]></dc:creator>
				<category><![CDATA[博客]]></category>
		<category><![CDATA[sonata]]></category>

		<guid isPermaLink="false">http://www.newlifeclan.com/symfony/?p=517</guid>
		<description><![CDATA[<p>按照安装说明操作，SonataAdminBundle已经安装，但还是无法访问。你要深入配置他，才可以使用它。这 [&#8230;]</p>
<p><a rel="nofollow" href="http://www.newlifeclan.com/symfony/archives/517">SonataAdmin参考指南二入门</a>，首发于<a rel="nofollow" href="http://www.newlifeclan.com/symfony">Symfony中文教程</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>按照安装说明操作，SonataAdminBundle已经安装，但还是无法访问。你要深入配置他，才可以使用它。这里会快速的配置SonataAdminBundle并创建一个管理界面，需要一下几步</p>
<p><span id="more-517"></span></p>
<p>第一步，定义SonataAdminBundle路由：</p>
<p>第二步，创建一个Admin类</p>
<p>第三步，创建一个Admin服务</p>
<p>第四步，配置</p>
<p>2入门SonataAdminBundle</p>
<p>2.1第一步，定义SonataAdminBundle路由</p>
<p>为了能够访问SonataAdminBundle界面，你需要将其路由添加到应用程序的路由文件：</p><pre class="crayon-plain-tag"># app/config/routing.yml
admin:
    resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
    prefix: /admin

_sonata_admin:
    resource: .
    type: sonata_admin
    prefix: /admin</pre><p>注意：这个<tt class="docutils literal"><span class="pre">resource:</span> <span class="pre">.是个什么奇怪的语法？因为symfony必须要定义一个资源（指向一个真实的文件）。一旦验证通过Sonata’s <tt class="docutils literal"><span class="pre">AdminPoolLoader，他会处理这条路由，会忽略资源设置。</span></tt></span></tt></p>
<p>此时你可以访问管理界面了：<tt class="docutils literal"><span class="pre">http://yoursite.local/admin/dashboard</span></tt>.</p>
<p>2.2第二步，创建一个Admin类</p>
<p>SonataAdminBundle可以帮助你使用图形界面来管理你的数据，你可以创建、更新和查询你的模型。这些操作都需要配置，使用Admin类来完成。</p>
<p>这个Admin类相当于把每一个管理操作都映射到你的模型。在这里，你决定哪些字段显示在列表，使用过滤器或者决定什么字段显示在创建和编辑表单。</p>
<p>为你的模型创建一个Admin类最简单的方法就是继承Sonata\AdminBundle\Admin\Admin类</p>
<p>假设你的AcmeDemoBundle有一个Post实体。</p><pre class="crayon-plain-tag">&lt;?php
// src/Acme/DemoBundle/Admin/PostAdmin.php

namespace Acme\DemoBundle\Admin;

use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;

class PostAdmin extends Admin
{
    // Fields to be shown on create/edit forms
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            -&gt;add('title', 'text', array('label' =&gt; 'Post Title'))
            -&gt;add('author', 'entity', array('class' =&gt; 'Acme\DemoBundle\Entity\User'))
            -&gt;add('body') //if no type is specified, SonataAdminBundle tries to guess it
        ;
    }

    // Fields to be shown on filter forms
    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
            -&gt;add('title')
            -&gt;add('author')
        ;
    }

    // Fields to be shown on lists
    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            -&gt;addIdentifier('title')
            -&gt;add('slug')
            -&gt;add('author')
        ;
    }
}</pre><p>2.3第三步，创建一个Admin服务</p>
<p>现在，你已经有了一个Admin 类，你需要为他创建服务。该服务需要有sonata.admin tag，让SonataAdminBundle知道这个特殊的服务代表一个Admin类</p>
<p>创建一个新的admin.yml文件在Acme/DemoBundle/Resources/config/目录下：</p><pre class="crayon-plain-tag"># Acme/DemoBundle/Resources/config/admin.yml
services:
    sonata.admin.post:
        class: Acme\DemoBundle\Admin\PostAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Content", label: "Post" }
        arguments:
            - ~
            - Acme\DemoBundle\Entity\Post
            - ~
        calls:
            - [ setTranslationDomain, [AcmeDemoBundle]]</pre><p>上面的例子假设你用SonataDoctrineORMAdminBundle。如果你使用SonataDoctrineMongoDBAdminBundle、SonataPropelAdminBundle或者SonataDoctrinePhpcrAdminBundle你的manager_type选项就应该调整为<tt class="docutils literal"><span class="pre">doctrine_mongodb</span></tt>,<tt class="docutils literal"><span class="pre">propel</span></tt>和<tt class="docutils literal"><span class="pre">doctrine_phpcr。</span></tt></p>
<p>一个Admin服务基本配置相当的简单。它创建一个服务实例，基于你之前指定的类，并接受三个参数：</p>
<p>1.Admin服务代码（默认为服务名称）</p>
<p>2.Admin类映射的模型（必须）</p>
<p>3.控制器处理管理操作（默认为SonataAdminBundle:CRUDController()）</p>
<p>通常你只需指定第二个参数，第一个参数和第二个参数的默认值适用于大多数情况。</p>
<p>setTranslationDomain的调用，让你选择管理页面的翻译域。更多信息查看symfony的翻译。</p>
<p>现在，你有你的admin服务配置文件，你需要告诉symfony加载它。有两种方法来完成它</p>
<p>2.3.1. 1-导入到主要config.yml</p>
<p>把你新配置的文件引入到主要配置config.yml(请确保你使用正确的文件扩展名)</p><pre class="crayon-plain-tag"># app/config/config.yml
imports:
    - { resource: @AcmeDemoBundle/Resources/config/admin.yml }</pre><p>2.3.1.2-让你的bundle加载它</p>
<p>你也可以在你自己的bundle中加载Admin配置文件。在你自己的bundle扩展文件中load方法中使用load()来加载配置</p><pre class="crayon-plain-tag"># Acme/DemoBundle/DependencyInjection/AcmeDemoBundleExtension.php for YAML configurations

namespace Acme\DemoBundle\DependencyInjection;

use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\Config\FileLocator;

class AcmeDemoBundleExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container) {
        // ...
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader-&gt;load('admin.yml');
    }
}</pre><p>2.4 第四步，配置</p>
<p>这时，你已经有一个基本的管理页面，来操作你的Model。如果你访问http://yoursite.local/admin/dashboard，你会看到一个面板。你可以创造、展示列表、编辑和删除。</p>
<p>你可能想把自己的项目名称和logo放到顶部栏。</p>
<p>把你的logo文件放到src/Acme/DemoBundle/Resources/public/img/fancy_acme_logo.png里</p>
<p>安装你的资源</p><pre class="crayon-plain-tag">$ php app/console assets:install</pre><p>现在你需要改变你项目的主配置文件config.yml</p><pre class="crayon-plain-tag"># app/config/config.yml
sonata_admin:
    title:      Acme Demo Bundle
    title_logo: bundles/acmedemo/img/fancy_acme_logo.png</pre><p>&nbsp;</p>
<p>2.5下一步，安全</p>
<p>你可能已经注意到，你能够输入url来访问你的仪表盘和数据。默认情况下，SonataAdminBundle不附带任何用户管理，增加了极大的灵活性。然而， 这个功能是你应用程序最有可能需要的。Sonata项目包含了SonataUserBundle它集成了非常流行的FOSUserBundle。</p>
<p>恭喜！你已经准备好开始使用SonataAdminBundle了。现在你可以映射其他模型或探索更先进的功能。下面更深层次的讲解每个部分和SonataAdminBundle可以配置什么和能够实现什么</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a rel="nofollow" href="http://www.newlifeclan.com/symfony/archives/517">SonataAdmin参考指南二入门</a>，首发于<a rel="nofollow" href="http://www.newlifeclan.com/symfony">Symfony中文教程</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newlifeclan.com/symfony/archives/517/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SonataAdmin参考指南一安装</title>
		<link>http://www.newlifeclan.com/symfony/archives/515</link>
		<comments>http://www.newlifeclan.com/symfony/archives/515#comments</comments>
		<pubDate>Wed, 03 Jun 2015 04:39:56 +0000</pubDate>
		<dc:creator><![CDATA[napoleon]]></dc:creator>
				<category><![CDATA[博客]]></category>
		<category><![CDATA[sonata]]></category>

		<guid isPermaLink="false">http://www.newlifeclan.com/symfony/?p=515</guid>
		<description><![CDATA[<p>SonataAdminBundle可以在项目的任何时期安装，无论你的项目是干净的symfony2还是现有项目。 [&#8230;]</p>
<p><a rel="nofollow" href="http://www.newlifeclan.com/symfony/archives/515">SonataAdmin参考指南一安装</a>，首发于<a rel="nofollow" href="http://www.newlifeclan.com/symfony">Symfony中文教程</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>SonataAdminBundle可以在项目的任何时期安装，无论你的项目是干净的symfony2还是现有项目。</p>
<p><span id="more-515"></span></p>
<p>1.安装</p>
<p>1.1下载代码</p>
<p>使用composer来管理SonataAdminBundle的依赖和下载</p><pre class="crayon-plain-tag">php composer.phar require sonata-project/admin-bundle</pre><p>会让你输入一个版本。‘dev-master’会让你下载最新版本，与最新的symfony2版本兼容。</p><pre class="crayon-plain-tag">Please provide a version constraint for the sonata-project/admin-bundle requirement: dev-master</pre><p>1.2选择下载一个存储Bundle</p>
<p>SonataAdminBundle与存储无关，这意味着它可以与多个存储机制工作。这取决于你的项目，你可以选择以下包之一。点击相应的链接，你会发现他们每个bundle的简单安装说明：</p>
<ul class="simple">
<li><a class="reference external" href="https://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/installation.html">SonataDoctrineORMAdminBundle</a></li>
<li><a class="reference external" href="https://github.com/sonata-project/SonataDoctrineMongoDBAdminBundle/blob/master/Resources/doc/reference/installation.rst">SonataDoctrineMongoDBAdminBundle</a></li>
<li><a class="reference external" href="https://sonata-project.org/bundles/propel-admin/master/doc/reference/installation.html">SonataPropelAdminBundle</a></li>
<li><a class="reference external" href="https://github.com/sonata-project/SonataDoctrinePhpcrAdminBundle/blob/master/Resources/doc/reference/installation.rst">SonataDoctrinePhpcrAdminBundle</a></li>
</ul>
<p>如果你不知道选哪个你就使用SonataDoctrineORMAdmin，他与传统的关系型数据库（MySql和PostgreSQL）互动</p>
<p>1.3启用SonataAdminBundle和他的依赖</p>
<p>SonataAdminBundle会依赖其他的bundle来实现某些功能。除了第二步中提到的存储层，还需要其他bundle：</p>
<ul class="simple">
<li><a class="reference external" href="https://sonata-project.org/bundles/block/master/doc/reference/installation.html">SonataBlockBundle</a></li>
<li><a class="reference external" href="https://github.com/KnpLabs/KnpMenuBundle/blob/master/Resources/doc/index.md#installation">KnpMenuBundle</a></li>
</ul>
<p>这些bundle会作为SonataAdminBundle的依赖在composer中自动下载。但是，你必须要在你的AppKernel.php中手动配置一下。</p><pre class="crayon-plain-tag">&lt;?php
// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...

        // The admin requires some twig functions defined in the security
        // bundle, like is_granted
        new Symfony\Bundle\SecurityBundle\SecurityBundle(),

        // Add your dependencies
        new Sonata\CoreBundle\SonataCoreBundle(),
        new Sonata\BlockBundle\SonataBlockBundle(),
        new Knp\Bundle\MenuBundle\KnpMenuBundle(),
        //...

        // If you haven't already, add the storage bundle
        // This example uses SonataDoctrineORMAdmin but
        // it works the same with the alternatives
        new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),

        // Then add SonataAdminBundle
        new Sonata\AdminBundle\SonataAdminBundle(),
        // ...
    );
}</pre><p>1.4配置SonataAdminBundle依赖</p>
<p>你需要配置SonataAdminBundle的依赖。对于上面的每一个Bundle，都需要学习各自的安装和配置方式，来配置到你的程序中。</p>
<p>SonataAdminBundle提供的仪表盘管理采用SonataBlockBundle。为了能够使用它，你需要在配置用启用它：</p><pre class="crayon-plain-tag"># app/config/config.yml
sonata_block:
    default_contexts: [cms]
    blocks:
        # Enable the SonataAdminBundle block
        sonata.admin.block.admin_list:
            contexts:   [admin]
        # Your other blocks</pre><p>注意：不用担心，如果在这点上你还不太明白没有关系。SonataBlockBundle是一个有用的工具，以后你在了解他，现在他不是最重要的。</p>
<p>1.5清理</p>
<p>现在，安装资产</p><pre class="crayon-plain-tag">php app/console assets:install web</pre><p>通常，你安装一个新的bundle和其他，你需要清除一下缓存</p><pre class="crayon-plain-tag">php app/console cache:clear</pre><p>在这一点上，你的SonataAdminBundle和它的依赖没有错误显示，所以已经安装成功。但是有些东西你还为配置，你还无法正常使用它。</p>
<p>如果你在安装过程中，出现问题不要惊慌。</p>
<p>仔细阅读错误信息，试图找出哪些bundle导致的错误。</p>
<p>确保你按照正确的方式安装</p>
<p>你可以查询google看看是否有相同的问题</p>
<p>仍然没有处理？尝试看看GitHub上的开放问题</p>
<p>&nbsp;</p>
<p><a rel="nofollow" href="http://www.newlifeclan.com/symfony/archives/515">SonataAdmin参考指南一安装</a>，首发于<a rel="nofollow" href="http://www.newlifeclan.com/symfony">Symfony中文教程</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newlifeclan.com/symfony/archives/515/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
