SonataAdminBundle を使用して、いくつかのバックエンド管理機能を起動して実行しようとしていますが、最初の構成クラスで障害にぶつかりました。
app/config/config.yml に以下を追加しました
services:
sonata.admin.sport:
class: Clarity\CoachTimeBundle\Admin\SportAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: General, label: Sports}
arguments: [null, Clarity\CoachTimeBundle\Entity\Sport, null]
そして、パス src/Clarity/CoachTimeBundle/Admin/SportAdmin.php で次のクラスを定義します。
<?
namespace Clarity\CoachTimeBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Validator\ErrorElement;
use Sonata\AdminBundle\Form\FormMapper;
class SportAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name');
}
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('name');
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('name');
}
public function validate(ErrorElement $errorElement, $object)
{
$errorElement
->with('name')
->assertMaxLength(array('limit' => 255))
->end();
}
}
キャッシュをクリアしてアプリケーションを実行しようとすると、次のエラーが表示されます。ファイルは見つかりましたが、その中にクラスがありませんでした。クラス名または名前空間にタイプミスがある可能性があります。
ありがとう、アンドリュー