1

symfony2.1.6 を Symfony2.1.7 にアップグレードしたところ、この問題に遭遇しました。詳細を提供できることをお知らせください。2.1.6 では問題ありませんでしたが、2.1.7 では動作しないようです。

このエラーは、Customer.php エンティティ (顧客リスト) にアクセスしようとすると発生します。

Notice: Undefined index: _per_page in /var/www/playground/vendor/sonata-project/admin-bundle/Sonata/AdminBundle/Admin/Admin.php line 720
4

2 に答える 2

2

datagridValues は、基本 Sonata\AdminBundle\Admin\Admin クラスの $datagridValues で初期化されます。私がこの問題を見た理由は、完全な配列を割り当ててコード内の $this->datagridValues を更新したときです。配列全体を上書きするのではなく、配列に単一の値を割り当てることで問題を修正しました。

于 2013-03-07T12:29:06.197 に答える
1

コメントをありがとうprodigitalson、引数を渡すことで提案したように問題を解決しました。

今、私の CustomerAdmin.php は、Admin をオーバーライドする AbstractAdmin クラスを拡張します。この AbstractAdmin には共通コードが含まれており、他のすべての Admin クラスはこの Abstract クラスを拡張します。

<?php

namespace xxxx\AdminBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Doctrine\ORM\EntityManager;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Route\RouteCollection;

abstract class AbstractAdmin extends Admin
{
    /** @var int */
    protected $maxPerPage = 10;
    //other attributes

    public function __construct($code, $class, $baseControllerName)
    {
        parent::__construct($code, $class, $baseControllerName);
        $this->fields = $this->sortFields($fields);

        // custome arguments
        if (!$this->hasRequest()) {
            $this->datagridValues = array(
              ***'_per_page' => $this->maxPerPage*** //passing ***_per_page*** argument
        );
    }
}


<?php

namespace xxxx\AdminBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Route\RouteCollection;

class CustomerAdmin extends AbstractAdmin
{
   //code here
}
于 2013-02-20T05:29:47.227 に答える