2

私のsymphony 3.4プロジェクトにSonata(sonata-project/admin-bundle)をインストールしようとしています。Symfony3.4のSonata - 依存性注入(Sonata管理サービス宣言の正しい修正)

残念ながら、最初のサービスを追加するとエラーが発生します。

services.yaml:

admin.carrier: 
    class: App\Admin\CarrierAdmin 
    arguments: [~, App\Entity\Carrier, ~] 
    tags: 
     - { name: sonata.admin, manager_type: orm, label: Carrier } 
    public: true 

そしてhttp://localhost/admin/dashboardにアクセスしたときに私が取得エラー:

1) FatalThrowableError 

Type error: strlen() expects parameter 1 to be string, null given 
in AddDependencyCallsCompilerPass.php (line 401) 
at strlen(null)in AddDependencyCallsCompilerPass.php (line 401) 
at AddDependencyCallsCompilerPass->replaceDefaultArguments(array('admin.carrier', 'SonataAdminBundle:CRUD'), object(Definition), null)in AddDependencyCallsCompilerPass.php (line 67) 
at AddDependencyCallsCompilerPass->process(object(ContainerBuilder))in Compiler.php (line 141) 
at Compiler->compile(object(ContainerBuilder))in ContainerBuilder.php (line 753) 
at ContainerBuilder->compile()in Kernel.php (line 634) 
at Kernel->initializeContainer()in Kernel.php (line 137) 
at Kernel->boot()in Kernel.php (line 197) 
at Kernel->handle(object(Request))in index.php (line 25) 

誰も私を助けることができていますか?

+0

おそらくこの文字「〜」はサービスのパラメータではありません。おかしいです。 – darkomen

答えて

1

まず、管理者サービスにアプリプレフィックスを追加することをお勧めします。 CRUDコントローラの宣言であなたの間違い。第3引数 - この管理サービスのCRUDコントローラです。したがって、デフォルトのものを使用する必要があります。SonataAdminBundle:CRUD

app.admin.carrier: 
    class: App\Admin\CarrierAdmin 
    arguments: [~, App\Entity\Carrier, SonataAdminBundle:CRUD] 
    tags: 
     - { name: sonata.admin, manager_type: orm, group: 'carrier', label_catalogue: "admin", label: 'carrier' } 
+1

ありがとうございます!それははるかに良いです!もう1つの問題: 'Admin service"コードが "admin pool"に見つかりません。私はそれを修正する方法を探しています。 – Toon

+2

@Toon、このトピックを閉じて、問題に関する完全な情報を持つ別のトピックを作成する方がよいと思います。答えを正しいものとしてマークしてください。 – staskrak