Ich versuche zu experimentieren und meine ersten Schritte mit Laravel 5 eine grundlegende Helpdesk-App implementieren, deren Hauptmodelle sind Ticket und Nachricht.Loading andere Modelle in Controller
I definiert zunächst den Endpunkt für die Hinzufügung einer neuen Nachricht in einem bestehenden Ticket mit dieser Route:
Route::post('tickets', '[email protected]');
und dem Speicher() -Methode innerhalb TicketsController:
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$messageTxt = $request->get('message');
$ticket = Ticket::findOrFail($request->get('ticket_id'));
$message = new Message();
$message->text = $messageTxt;
$ticket->messages()->save($message);
return Redirect::action('[email protected]', $request->get('ticket_id'));
}
Beachten Sie, dass beide Modelle haben eine Eins-zu-Viele-Beziehung, die in diesem Fall durch die Methode messages() definiert wird. Dies funktionierte ohne Probleme. Aber dann erkannte ich, dass diese Ressourcenmethode besser geeignet wäre, ein brandneues Ticket zu erstellen, keine Ticketnachricht.
Also, wenn jemand das Formular sendet eine neue Ticket-Nachricht zu erstellen, ist dies der Weg, den ich stattdessen definiert ist:
Route::post('messages', '[email protected]');
Next I in TicketsController :: Shop der gesamten Code oben bewegt(), um MessagesController :: store(), aber dann bekam ich diesen Fehler:
Zeile 40 entspricht der Anfrage für das Ticket mit der Ticket-ID. Es sieht so aus, als ob es etwas damit zu tun hat, dass das Ticket-Modell hier nicht geladen wird, da es per Konvention nicht in diesen Controller gehört und in TicketController perfekt funktioniert. Ich bin jedoch nicht so sicher.
Was soll ich tun, um das Ticket-Modell innerhalb des Nachrichtencontrollers verwenden zu können?
Danke für Ihre Hilfe. Ich habe getan, was Sie gesagt haben, aber es wirft auch den Fehler mit Nachricht und sogar mit Redirect. Warum passiert das hier und nicht in der anderen Steuerung? –
Jetzt sehe ich, ich muss es auch mit Message tun, genau wie ich in TicketsController. –
Jetzt funktioniert es. Vielen Dank! –