Ich habe einen Controller im Ordner Komponenten/Test/Test/Controller namens MyController. Wenn ich den Namespace als "namespace app \ components \ test \ test" einstelle, versuche ich den Controller aufzurufen, wenn "Page Not Found" angezeigt wird.Yii2. Einen benutzerdefinierten Controller-Namespace einrichten
Ich habe gelesen und ich weiß, dass standardmäßig Yii2 Namespace für Controller auf "App \ Controller" setzt.
wissen auch, dass Sie Namespace für alle Steuerungen von Config ändern können:
'controllerNamespace' => 'app\\components\test...'
Aber ich wollte nur für einen Controller ändern, nicht für alle. Etwas ähnlich wie Module, dort können Sie tun:
$this->controllerNamespace = 'app\modules\test\test';
Ich habe gerade etwas „controllerMap“, vielleicht könnte dies eine Lösung genannt wird? irgendwelche Ideen?
Beispiel Ich habe innen "Komponenten" (Grund Vorlage) einen Controller LocationController mit diesem Inhalt erstellt:
namespace app\components;
use yii\web\Controller;
class LocationController extends Controller {
public function actionAdd() {
return "hola1";
}
public function actionRemove() {
return "hola2";
}
}
Wenn ich einen Link Yü erstellt :: $ app-> urlManager-> createAbsoluteUrl ("Ort/Hinzufügen"); und klicke darauf. Ich bekomme den Fehler "Seite nicht gefunden".
UPDATE Ich habe festgestellt, dass möglich ist, Klassen zu classMap hinzufügen, aber nicht sicher, wo es platzieren:
Yii::$classMap['app\components\LocationController'] = '..path.../components/LocaitonController.php'
den Trick Vielleicht tun könnte?
Sie einen Tippfehler Namespace app \ Komponenten \ test/test – scaisEdge
Danke, habe ich es einfach beheben (es war ein Typ auf die Frage nur), irgendwelche Ideen wie kann es gemacht werden? – Eduardo
Sind Sie sicher, dass Sie die richtige ControllerAction aufrufen? .. bitte geben Sie die URL an .. – scaisEdge