ich habe eine Verständnisfrage zu Controllern.
1. Meine URL wird aufgerufen, z.B.:
http://localhost/blog/suche/anzeigen/1
2. Die Rule heißt demnach
'suche/anzeigen/<value:[0-9]>' => 'search/show',
3. Die Action wird aufgerufen (hier nun meine Frage)
- Wir nehmen an, wir benutzen keine Datenbank, wir greifen auf ein Array zu [0] => 'Hallo', [1] => 'Bye', etc.
- Es soll eine Fehlermeldung ausgegeben werden
Folgender Aufruf, search heißt der Controller, gibt ein leeres Objekt zurück (nicht die übergebene Variable
public function actionShow ()
{
$x = new search;
echo "<pre>";
print_r($x);
echo "</pre>";
}search Object
(
[_validators:private] =>
[_errors:private] => Array
(
)
[_va:private] =>
[_se:private] =>
[_e:private] =>
[_m:private] =>
)
Um auf die Variable zuzugreifen benutze ich folgende, vielleicht sehr unnützlichen Aufruf
<?php
public function actionShow ()
{
$searchword = $_GET['value'];
if ( $search->model()->checkSearchWord( $searchword ) )
{
$this->render('xxx', 'etc.');
}
else
{
throw .... ???? (eigene Fehlerseite eingebettet im Layout)
}
}
?>
Folgende Verständnisfragen habe ich nun:
- Gibt es einen anderen Weg auf die URL - Parameter zuzugreifen?
- Ins Model gehören normalerweise doch nur Funktionen die auf die Datenbank zugreifen, oder dürfen / sollen dort auch Funktionen hinein geschrieben werden, mit denen man Strings modifiziert.
- Wie kann ich meine eigene Fehlerexception mit Code 404 erstellen, falls kein gültiger Wert übergeben wurde.
Fragen zur Fehlerseite
- Wie leite ich auf eine eigene Fehlerseite mit dem Layout, wenn die Rule fehlschlägt
- Wie leite ich auf eine eigene Fehlerseite mit dem Layout, wenn im Controller etwas fehlschlägt

Help













