我在components/test/test/controllers文件夾中有一個名爲MyController的控制器。如果我將名稱空間設置爲「名稱空間應用程序\ components \ test \ test」,然後嘗試調用控制器,如果顯示「找不到頁面」。Yii2。設置自定義控制器名稱空間
我一直在閱讀,我知道默認情況下,Yii2將控制器的命名空間設置爲「app \ controllers」。
也知道,你可以更改命名空間從配置所有控制器:
'controllerNamespace' => 'app\\components\test...'
但我只是想改變一個控制器並非對所有。類似的東西到模塊中,你可以這樣做:
$this->controllerNamespace = 'app\modules\test\test';
我剛剛發現有一種叫做「controllerMap」,也許這可能是一個解決方案嗎?有任何想法嗎?
例 我已經 「組件」(基本模板)與此內容控制器LocationController內部產生:
namespace app\components;
use yii\web\Controller;
class LocationController extends Controller {
public function actionAdd() {
return "hola1";
}
public function actionRemove() {
return "hola2";
}
}
當我創建的鏈接的Yii :: $ APP-> urlManager-> createAbsoluteUrl( 「位置/添加」);並點擊它我得到「頁面未找到」的錯誤。
UPDATE 我發現這是可能的類添加到類映射,但不知道在哪裏把它:
Yii::$classMap['app\components\LocationController'] = '..path.../components/LocaitonController.php'
也許這可能做的伎倆?
你有一個錯字命名空間的應用程序\分量\測試/測試 – scaisEdge
謝謝,我只是修復它(這是一個類型上只有問題),任何想法如何完成? – Eduardo
你確定你在調用正確的controllerAction嗎? ..請提供網址.. – scaisEdge