Hallo,
es gut um paar Verständnisfragen zu Controller und Views.
Relationen
1.) Name
id
name
2.) ehemann_ehefrau
mannID
frauID
(hat eine eigene Modelklasse zum Hinzufügen der Relation)
Dafür habe ich die CRUD-Actions definiert und die funktionieren soweit wunderbar
CREATE
UPDATE
DELETE
SHOW
LIST
Nun habe ich eine weitere M:N Verknüpfung zu Name erstellt.
3.) ehemann_nachbar
ehemannID
nachbarID
( hat eigene Modelklasse zum Hinzufügen der Relation )
Meine Verständnisfragen sind nun:
1.) Zum Hinzufügen einer neuer Relation zwischen EHEMANN und NACHBAR habe ich eine actionCreatenachbar erstellt, die dann auf mein VIEW createnachbar verweist. Dort habe ich dann zwei Felder, in denen ich die Namen eintrage und die Beziehung erfolgreich erstellt wird.
Meine Frage ist nun, ob das soweit "richtig" ist. Es hört sich zwar ganz banal an, jedoch würde mich interessieren ob ihr das Problem anders lösen würdet. Die Action actionCreatenachbar hört sich für mich an, als ob sie nicht in den Controller passen würde.
2.) Mein zweite Frage bezieht sich auf das Prüfen der Eingabe und Ausgabe von Fehlermeldungen.
Meine action actionCreatenachbar verweist auf meine View Createnachbar.
Nun habe ich dort zwei Felder wo die Namen eingetragen werden und anschließend in die Relation ehemann_nachbar eingetragen werden.
Wie überprüfe ich nun, im Controller schön ob der eingegeben Name in der Datenbank vorhanden ist und wie gebe ich bei nicht Vorhandensein eine Fehlermeldung an die View zurück?
Bis jetzt sieht der Controller ungefähr so aus, aber dass sieht für mich nicht professional gelöst aus aus.
public function actionCreate()
{
$model = new name;
$model2 = new name;
if(isset($_POST['language1']))
{
$model->attributes = $_POST['name'];
$aReturn = name::getName( $model->name );
// Wie gebe ich nun hier eine Fehlermeldung an das View zurück, wenn der Name nicht vorhanden ist?
// und das für beide Felder?
$aReturn2 = name::getName( $model2->name );
$this->redirect(array( 'show', "id" => $aReturn->id));
}
$this->render('create',array
(
'model' => $model,
)
);
}
Würde es vielleicht Sinn machen für die Beziehung Ehemann <=> Nachbar einen eigenen Controller zu machen?
Vielleicht habt ihr paar Erfahrungen aus euren Projekten.
mfg
yii