0

Zendフレームワークの経験があります。最近Yiiを使い始めました。

今、私はこのフレームワークでいくつかの類推を見つけようとしています。

Zend では、ほとんどすべてのルートに独自の名前があります。たとえば、次のルート「photos_map」を作成できます。

$router->addRoute('photos_map',
    new Zend_Controller_Router_Route('map/:city', array(
        'controller' => 'photos', 
        'action' => 'map',
        'city' => ''
    ))
);

そしてそれをviewbyで使用するurl helper

echo $this->url(array(), 'photos_map') // output '/map'

Zendcityでは、初期化時または url-helper 呼び出し時にパラメーター (上記の例では ) を渡すこともできます。

URL を変更したい場合は、初期化でパラメーター文字列を必要なものに変更するだけmap/:cityです。コードのどこでも古い URL を新しい URL に置き換える必要がないため、非常に便利です。

私の質問は Yii で可能ですか? 私はドキュメンテーションを流暢に読み、Yii ルートはそれほど強力ではないことに気づき始めました。これはパフォーマンスの犠牲ですか、それとも何かを逃しましたか?

4

1 に答える 1

1

Yii でのルーティングは簡単で、Zend と比べると少し異なります。Yii では、ビューはコントローラーを使用してレンダリングされるため、ビューをレンダリングするには、コントローラーを呼び出す必要があります。たとえば、サイトのインデックス ページにいて、プレビュー ページに移動したいとします。

$url = Yii::app()->createUrl('/site/preview');
//Here site is the name of the controller class and preview is the name of the action
//You will need to have a controller named SiteController in your controllers folder
//You will need to have a folder named "site" in your views folder
//You will need to have an action(function) defined as actionPreview in your controller class

コントローラ クラス (この場合は SiteConroller.php) で、

public function actionPreview()
{
     $this->render('preview',array('data'=>''));
     //will render preview.php located in views/site/preview.php
     //u can pass parameters in array as shown above, in this case data 
}

URL を変更したい場合は、 $this->render('your_view_file.php'); の部分を変更するだけです。お役に立てば幸いです..........質問はお気軽にどうぞ......

于 2012-09-13T07:35:09.140 に答える