1

こんにちはみんな私は迷惑のスポットを持っています、誰かがこれにいくつかの光を当てることができることを願っています。

奇妙な理由で、キャメルケースをそのアクション名のすべて小文字に変更しない限り、アクションは存在しないというルートが表示され、正常に機能します。しかし、それは命名規則に反します!そして、私も自分のコードをだらしなくしたくありません。

これが私のルートです:

$FrontController = Zend_Controller_Front::getInstance();
$Router = $FrontController->getRouter();
$Router->addRoute("artistsave",
    new Zend_Controller_Router_Route
    (
        "artist/save-artist",
        array(
        "controller"=>"artist",
        "action"    =>"saveArtist"
        )
    )
);

私にとって、これはArtistControllerでアクションsaveArtistsActionを探す必要がありますが、このエラーはスローされません。

以下のエラーが発生しました。アクション「saveartist」は存在せず、__ call()にトラップされませんでした

そのため、エラーではa for Artistが小文字になっているため、ルーターのキャメルケースが削除されたようです。それに合わせてアクションの名前を変更すると、機能します。

saveArtistを探していない理由は何ですか?

これはアーティストオブジェクトの一部であるため、名前を変更して保存するだけでよいことに気付きましたが、これを理解したいと思います。

助けてくれてありがとう:)


これを送ったらすぐにわかりましたが、他の人も同じ間違いに陥る可能性があるので、ここに置いて解決策を教えてください!

ルーターでは、まだURL形式のままです。キャメルケースではなくハイフンを使用するように意図されていたので、フレームワークがそれを機能させます。だからここに私の修正/解決策があります:

$Router->addRoute("artistsave",
    new Zend_Controller_Router_Route
    (
    "artist/save-artist",
    array(
            "controller"=>"artist",
        "action"    =>"save-artist"
    )
    )
);

ハッピーコーディング:)

4

1 に答える 1

-1

命名規則では、アクションは「Action」という単語まですべて小文字で命名する必要があると指定されています。

したがって、アクションに名前を付ける正しい方法は次のとおりです。

saveartistsAction()

somethingthatdoessomethingelseAction()

于 2010-10-06T05:45:54.347 に答える