こんにちは。私はSilex(2.0)を初めて使っているので、$ app変数を私のコントローラに渡そうとしているので、サービスとしてコントローラを作成しようとしています。Silex - ControllerResolverのInvalidArgumentException
私はdocumentation guideに従っていますが、私のコントローラーを登録するときに、タイプのエラーが発生します。InvalidArgumentException:クラス "controller。default"が存在しません。私のindex.phpに
:
$app->register(new Silex\Provider\ServiceControllerServiceProvider());
// Register controller as services.
$app['controller.default'] = function() use ($app) {
return new Fortunio\Controller\DefaultController($app);
};
$app->get('/', "controller.default::indexAction");
私は、コードの最後の行を変更した場合、アプリケーションがスムーズに実行し、エラーが消える:私のコントローラ上の
$app->get('/', 'Fortunio\Controller\DefaultController::indexAction');
を:
<?php
namespace Fortunio\Controller;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
class DefaultController
{
public function indexAction(Application $app, Request $request)
{
// my controller code here
}
}
私のミスはどこですか?
ありがとうございます。
こんにちは@AdamCameron、リファレンスガイドの指示に正しく従っている場合は、何も問題はありませんあなたが言ったように、あなたの助けを大変ありがとうございます。私の間違いはコロン(:)を使用することでした。コントローラーをその名前とアクションで使用するのはMy \ Controller :: myAction(二重コロン)の構文を使用しますが、コントローラーをサービスとして使うにはコロン 'my.controller :myAction ' コロンの使用を修正すると、エラーは消え、アプリケーションは円滑に実行されます。 よろしくお願いいたします。 –
母、私はそれを見つけなかった!与えられた状況のための大きなエラーメッセージではないですか?あなたがそれを整理してうれしいです。 –