3

ModelMangaer を変更したいので、ModelManager を拡張していましたが、うまくいきません。どうしてか分かりません ?

なぜそれが機能しないのか教えてください。

Sonata\DoctrineORMAdminBundle\Model\ModelManager-> を拡張したファイル

<?php

use Sonata\DoctrineORMAdminBundle\Model\ModelManager;


class ModelManager extends ModelManager
{

/**
 * {@inheritdoc}
 */
public function getSortParameters(FieldDescriptionInterface $fieldDescription,            DatagridInterface $datagrid)
{
    $values = $datagrid->getValues();
    $values = $_GET['filter'];

    if ($fieldDescription->getName() == $values['_sort_by']) {

        if ($values['_sort_order'] == 'ASC') {
            $values['_sort_order'] = 'DESC';
        } else {
            $values['_sort_order'] = 'ASC';
        }
    } else {
        $values['_sort_order'] = 'ASC';
        $values['_sort_by']    = $fieldDescription->getName();
    }
    return array('filter' => $values);
}
4

3 に答える 3

0

注入されるサービスを変更する必要があります。次を参照してください。

管理者向けドキュメント - リファレンス - 上級 (マスター) - 26.1. サービス構成

# app/config/config.yml
admins:
sonata_admin:
    sonata.order.admin.order:   # id of the admin service this setting is for
        model_manager:          # dependency name, from the table above
            sonata.order.admin.order.manager  # customised service id

管理者クラスの個々のモデル マネージャーについては、次の回答を参照してください: SonataDoctrineORM - モデルの拡張

于 2014-08-28T11:56:17.533 に答える
0

名前空間を忘れた

namespace Acme\MyDoctrineORMAdminBundle\Model\ModelManager;

バンドルの継承を使用する必要があります。

// src/Acme/MyDoctrineORMAdminBundle/MyDoctrineORMAdminBundle.php

namespace Acme\MyDoctrineORMAdminBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class MyDoctrineORMAdminBundle extends Bundle
{
    public function getParent()
    {
        return 'DoctrineORMAdminBundle';
    }
}
于 2013-01-25T09:29:56.587 に答える