====== Controllers ====== * Controller ''MyFirstController'' --> /my-frist-controller Camel Case wird in Bindestrich und Kleinbuchstaben umgewandelt ===== Action ===== Funktion ''action'' bildet die Seite ''WHAT'' * Rückgabetyp String --> zeigt den Text an * Rückgabetyp view --> geht durch Template Engine ''$this->render(view:'name')'' * Views sind im gleichnamigen Ordner wie der Controller unter /views abgelegt (/view/name gem. obigem Bsp.) ==== Behaviors ==== public function behaviors() { return [ 'access' => [ 'class' => AccessControl::class, 'only' => ['logout'], 'rules' => [ [ 'actions' => ['logout'], 'allow' => true, 'roles' => ['@'], ], ], ], // verbs beziehen sich auf Aktionen 'verbs' => [ // Filter blockieren Requests basierend auf bestimmten Parameter oder verändern die Response. 'class' => VerbFilter::class, 'actions' => [ 'logout' => ['post'], ], ], ]; } ==== Layout anpassen ==== public function actionWhatever() { $this->layout = 'whatever'; // benutzt view/layouts/whatever.php als layout anstelle von main.php } === Nested Layout === * Auf übergeordneter Ebene (z.B. base.php) nur Grundlayout (Header, Footer) und ''echo $content;'' einfügen. == Untergeordnete Ebene == beginContent(viewFile: '@path/to/base.php'); ?>
render(view: 'main');
endContent();