Hallo,
ich habe eine Verständnisfrage zu Controllern.
- Meine URL wird aufgerufen, z.B.:
http://localhost/blog/suche/anzeigen/1
- Die Rule heißt demnach
'suche/anzeigen/<value:[0-9]>' => 'search/show',
- 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 .... <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/huh.gif' class='bbc_emoticon' alt='???' />? (eigene Fehlerseite eingebettet im Layout)
}
}
?>
Folgende Verständnisfragen habe ich nun:
[list=1]
[*]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.
[/list]
Fragen zur Fehlerseite
[list=1]
[*]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
[/list]