在主設定檔 protected/config/main.php 中指定:
<?php
return [
'name' => 'My Application',
'defaultController' => 'site', // 對應 SiteController
// ...
];
訪問 index.php 時將路由至 SiteController::actionIndex()。
在 Controller 類別中宣告 $defaultAction 屬性:
<?php
class SiteController extends CController
{
public $defaultAction = 'dashboard'; // 預設動作
public function actionIndex()
{
// 原本的 index 動作
}
public function actionDashboard()
{
// 新的預設動作
$this->render('dashboard');
}
}
| URL | 解析結果 |
|---|---|
defaultController/actionIndex (若無 $defaultAction) | |
defaultController/$defaultAction (若有設定) | |
SiteController/actionIndex | |
SiteController/actionDashboard | |
SiteController/actionIndex |
若使用模組,可在模組類別中設定:
<?php
class AdminModule extends CWebModule
{
public $defaultController = 'dashboard';
// 模組內部預設 action 在對應 Controller 設定
}
Yii 2 設定方式不同:
<?php
// config/web.php
return [
'id' => 'app',
'defaultRoute' => 'site/dashboard', // 格式: ControllerID/ActionID
// ...
];
Controller 中不再有 $defaultAction,改由 defaultRoute 統一控制。