0

Zend Framework を使用しています。

現在、私はこの構造を持っていますhttp://mysite.com/page/promotion/

プロモーションの下にいくつかのランディングページを作成したいのですが、今はこのようにしています

    $promoId = $this->_getParam("id", false);

    if($promoId) {
        switch ($promoId){
            case 1:
                $this->render('promofirst');
                break;
            case 2:
                $this->render('promosecond');
                break;
            case 3:
                $this->render('promothird');
                break;      
            case 4:
                $this->render('testpromotion');
                break;
            default:
                $this->render('promotion');
                break;
        }
    }

だから私はこのような私のプロモーションに到達することができます: http://mysite.com/page/promotion/id/1

それは良い方法ではないと思います。これを行うための規則は何ですか?

4

2 に答える 2

0

そのような特定の標準的な方法があるかどうかはわかりませんが、複雑さに応じて、あなたの方法も問題ありません。私が一般的に行う方法は、

http://mysite.com/page/promotion/promote/first

私のコントローラーでは、

$promote = $this->_getParam("promote", false);

if($promote) {
   $this->render('promo'.$promote);
} else {
   $this->render('promotion');
}

ただし、おそらく同じ方法でビューに名前を付ける必要があります。

于 2013-03-07T11:26:11.180 に答える
0

私が考えることができる最良の方法は、次のようなものです。

//get the promo from where ever you have it stored and put it into a model
$model = new My_Promo_Model();
$promoId = $this->_getParam("id", false);

    if (!is_null($promoId)) {
        //structure the data in your model, not in the controller if possible.
        $promo = $model->getPromo($promoId);
        $this->view->promo = $promo;
    } else {
        //do some error stuff
    }

すべてのプロモーションは、おそらく形式とレイアウトが非常に似ているはずです。それらを区別するために必要なのは、異なる情報とアートだけです。単純なエンティティ モデルは、データ ソースが何であれ、ビュー スクリプトに を提供できる必要があります。

プロモーションごとにまったく異なるビュースクリプトが必要な場合は、おそらくページの構造を再検討する必要があります。

代替レイアウトで実行できるさまざまなスタイルのプロモーションにいくつかの異なるレイアウトを使用する必要がある場合。

幸運を。

于 2013-03-08T13:48:34.093 に答える