私はゆっくりとYii2に移行したいと考えているかなり大きなYii1アプリケーションを持っています。私はこれを徐々にしたいと思います。Yii2コントローラとYii1コントローラを組み合わせる
私はYii2 and Yii1 integration manualの指示に従っています。
私のアプリケーションは正常に動作しています。
私もyii2-yii-bridgeトリックを試してみましたが、それはまたいくつかの微調整の後に動作するようです。
私のアプリケーションにYiiの両方のバージョンがあることがわかったので、どうすればYii2スタイルのコントローラを追加できますか?
私はシンプルYii2スタイルコントローラを作成する場合は、次のように:
namespace app\controllers;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
class SecondController extends Controller {
public function behaviors()
{
return [
'access' => [
'class' => \yii\filters\AccessControl::className(),
'only' => ['index'],
'rules' => [
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
// everything else is denied
],
],
];
}
public function actionIndex()
{
Yii::trace("(!!!) SecondController::index called!!!");
return "SecondController::index!!";
}
} // class
私は私がするために使用していますURLスキームを使用してアクセスすることはできませんので、http://local.url/second/indexが発見されていないようです。
私はYii1スタイル私がいつも行っている方法を作成した場合しかし、それはうまく解決します
class ThirdController extends Controller {
public function accessRules() {
return array(
array('allow',
'actions' => array('index'),
'users' => array('*'),
),
);
}
public function actionIndex() {
Yii::trace("ThirdController::index called!!!");
return "ThirdController::index!!";
}
}
は<controller>/<action>
のデフォルトのURLマッピングは、名前空間のコントローラを扱うことができないようだこれを回避する方法はありますか?