Rufen Sie die Funktion in einem anderen controller in Yii
Ich habe 2 Controller in meinem Yii-Anwendung: FirstController.php und SecondController.php in der Standard-controller Weg.
FirstController.php:
<?php
class FirstController extends Controller {
public static function returnFunc() { return 'OK'; }
}
SecondController.php:
<?php
class SecondController extends Controller {
public function exampleFunc() {
$var = First::returnFunc();
}
}
Wenn ich versuche ausführen exampleFunc()
im SecondController, Yii werfen die Fehlermeldung:
YiiBase::include(FirstController.php) [<a href='function.YiiBase-include'>function.YiiBase-include</a>]: failed to open stream: No such file or directory
Aufrufen FirstController::returnFunc()
ähnlich funktionieren nicht.
Ich bin newbee in OOP und Yii framework. Was ist das problem?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich dieses problem gelöst. Der autoloader wird nicht geladen, regler.
Es wurde in
config/main.php
:Alle mit:
Missing argument 1 for CController::__construct(), called in
Beim erstellen einer Yii-Projekt, jede Ihrer Steuerungen erweitern die Controller-Klasse, und diese Klasse erweitert die eingebaute Yii-Klasse CController.
Das ist nett, weil Controller ist eine Klasse, die innerhalb Ihrer Anwendung (es kann gefunden werden in den Ordner "components").
Wenn Sie möchten, eine Methode zugegriffen werden, indem Sie beide Controller setzen, dass die Methode in der Controller-Klasse, und da Sie beide verlängern. Sie werden beide Zugriff haben. So stellen Sie sicher, erklären es entweder public oder protected.