2017-02-08 7 views
0

Ich arbeite an Laravel 5.3 Ich möchte einen Benutzer auf verschiedenen Seiten erneut von welcher Seite Benutzer kommt. Ich habe 3 Seiten istUmleiten eines gegen verschiedene Anfragen (Laravel 5.3)

erstellen

Blick alle

Ansicht

ich verwende Seite erstellen für einen bestimmten Zweck zu erstellen und zu bearbeiten. Alle anzeigen und beide Seiten anzeigen haben Bearbeitungsschaltfläche. Nach dem Klick geht es in Controller-Edit-Methode und Redirect zu bearbeiten Seite in beiden Fällen.

Bearbeiten Seite haben eine Return-Taste. Ich will, wenn Benutzer auf Return klicken, sollte es alle anzeigen, wenn er kommt aus der Ansicht alle Seite zu bearbeiten, andere weise, wenn er aus der Form kam, sollte es zurück zu sehen, wenn er auf die Rückkehr klicken.

-Code für Schaltfläche Bearbeiten ist wie in den beiden Ansicht und alle Seiten sehen ist als

<li> 
     <a href="{{ route('student.edit', $student->id) }}"> Edit</a> 
    </li> 

auf Klick bearbeiten es hier im Controller bearbeiten Methode kommt

public function edit($id){ 
    $student = Student::findOrFail($id); 
    $data = ['action' => 'edit']; 

    return view('student.create')->with(compact('data', 'student')); 
} 

Schaltflächen auf Seite erstellen sind als Recht jetzt

<div class="row"> 
    <button type="submit" value="dd">Save and add</button> 
    @if ($data['action'] == 'edit') 
    <a href="{{ route('student.index') }}"> 
    <button type="button">Return</button> 
    </a> 
    <button type="submit" value="edit">Save</button> 
    @endif 
</div> 

Jetzt ist es mir zurück, um alle Schüler gut von Update-Methode zu sehen ei verwenden überprüfen dort auf die Schaltfläche Wert als

if(Input::get('add')) { 
    return redirect()->route('student.create'); 
}else{ 
    return redirect()->route('student.index'); 
} 

Wie kann ich auf Basis des Benutzers Cam von Studenten Blick auf student.view umleiten

Jede Idee, zu bearbeiten, wie kann ich es tun, ich kann auch sein kann, bitte mit Sitzung arbeiten können, wie

+0

Verwenden Laravel Helfer-Methode aktualisieren 'zurück()'. Es wird die URL der vorherigen Seite für Sie generieren. –

+0

sollte es zurück gehen, wenn ich auf Return-Taste –

+0

auf klicken Sie auf Return-Taste klicken nicht gehen in Update-Methode sollte nur von Bearbeitungsseite zurückkehren –

Antwort

1

tun können Sie die URI auf die Anfrage erhalten mit $uri = $request->path(); dann ein switch die Kontrollen gegen $uri verwenden zu diktieren, was als nächstes zu tun ist.

Sie werden auch Ihre Controller Kopf mit

use Illuminate\Http\Request;

und aktualisieren Sie die Bearbeitungsmethode public function edit(Request $request, $id){ ändern müssen.

https://laravel.com/docs/5.3/requests#request-path-and-method

+0

Liebe URL wird für beide gleich sein, da beide Route bearbeiten –

+0

Von hier oben Route sollte es zurück gehen. Es geht nicht in der Steuerung bei der Rückkehr Klick –

0

zur vorherigen Seite/route in Ihrem Controller verwenden, um zurückzukehren:

return redirect()->back(); 

Oder einfach:

return back(); 

Dann Sie bearbeiten Funktion wie diese haben:

public function edit($id) 
{ 
    $student = Student::findOrFail($id); 
    $data = [ 'action' => 'edit']; 

    return back()->with(compact('data', 'student')); 
} 

Ref: Laravel 5.2 doc - redirect

UPDATES:

Wenn Sie es nach dem Klick auf den Button bedeuten sollte Return zurückgehen, dann sollte dies ausreichen:

<a href="{{ URL::previous() }}"> Return </a> 

PS: Ich habe dies auf getestet Laravel 5.2. * Und es hat funktioniert Ich hoffe, das hilft :)

+0

sollte es nach dem Klick auf Return-Taste gehen –

+0

Es sollte wieder nach der Ausführung gehen Funktion –

+0

0

Verwenden {{URL :: zurück()}}

Sie Ihren Code wie unten

<a href="{{ URL::previous() }}"><button type="button">Return</button></a> 
+0

ja es funktioniert für die Rückkehr aber immer noch Problem Ist das, dass ich auch eine hinzufügen-Schaltfläche, wenn er 1. hinzufügen und die Klicks gibt die Rückkehr nicht auf dieser Seite, wo erforderlich? –

+0

Auf Seite erstellen Sie nicht zeigen Rücklink. Wenn Sie auf Bearbeiten klicken, sehen Sie alle Seite bearbeiten und anzeigen Seite bearbeiten dann nur Sie zeigen Rückkehr URL, dann wo ist das Problem. – vallabh