2016-05-12 5 views
1

Ich habe eine benutzerdefinierte Route, die Parameter akzeptiert. Welches ist:Rückgabe von null, wenn die Werte des Parameters von create-Methode in Laravel erhalten

Route::get('reservation/{id}/create', 
     ['as' => 'reservation.create', 'uses' => '[email protected]' 
]); 

Ich habe diese Variable geschützt $ student_id. Das ID wird mit dem Parameter der create-Methode von ReservationController zugewiesen, wie unten zu sehen:

class ReservationController extends Controller 
{ 
    protected $student_id; 

    public function index() 
    { 
     return $this->student_id; 
    } 

    public function create($id) 
    { 
     $this->student_id = $id; 
     $subjects = Subject::with('sections')->get(); 

     return view('reservation.form',compact('subjects')); 
    } 

    public function store(Request $request) 
    { 

     $subject = new Reservation(); 

     $subject->section_subject_id = $request->sectionSubjectId; 

     $subject->student_id = $this->student_id; 

     $subject->save(); 

    } 
} 

Wenn die $ id Parameter Rückkehr auf die Methode erzeuge ich die genaue ID-Nummer. Ich habe auch diese $ id mit der $ student_id zugewiesen. Aber beim Zuweisen der $ student_id für die Speichermethode bekomme ich null Wert. Ich weiß, dass ich hier falsch liege, kann mir bitte jemand dabei helfen.

Okay, also lassen Sie mich einige Informationen hinzufügen: In meiner URL bei der Verwendung der Route reservation.create habe ich diese Adresse localhost: 8000/reservation/1/create die Nummer 1 in dieser URL ist die Studenten-ID, die ich will Holen Sie sich die Student_id in meiner Store-Methode und weisen Sie sie zu.

Ich habe auch dieses Formular Ansicht:

form.blade.php

<body> 
@foreach($subjects as $subject) 
@foreach($subject->sections as $section) 
    <tr> 
    <td>{{ $section->section_code }}</td> 
    <td>{{ $subject->subject_code }}</td> 
    <td>{{ $subject->subject_description }}</td> 
    <td>{{ $section->pivot->schedule }}</td> 
    <td>{{ $subject->units }}</td> 
    <td>{{ $section->pivot->room_no }}</td> 
    <td> 
    <button 
     v-on:click="addSubject({{ $section->pivot->id }})" 
     class="btn btn-xs btn-primary">Add 
     </button> 

     <button class="btn btn-xs btn-info">Edit</button> 
    </td> 
    </tr> 
    @endforeach 
    @endforeach 
</body> 

Zur gleichen Zeit, die ich uns von vue.js machen und vue-Ressource

all.js

methods:{ 
    addSubject: function(id){ 

    this.$http({ 
    url: 'http://localhost:8000/reservation', 
    data: { sectionSubjectId: id }, 
    method: 'POST' 
    }).then(function(response) { 
     console.log('success'); 
    },function (response){ 
     console.log('failed'); 
     }); 
    } 
} 
+0

weil STUDENT_ID null ist, verwenden Sie $ Subjekt-> STUDENT_ID = $ Anfrage-> id oder Anfrage- $> STUDENT_ID oder was auch immer der Name, den Sie verwenden –

Antwort

0

Sie versuchen, Variable in $this->student_id zu speichern und später in einer anderen Methode zu verwenden. So funktioniert das nicht. Die Sache ist, dass diese Methoden in verschiedenen HTTP-Anfragen verwendet werden, so dass die Variable nicht beibehalten wird.

Sie sollten diese Variable mit der reservation.form Ansicht an die store() Methode übergeben.

Sie können Request-Objekt dafür verwenden. In einer Ansicht:

<input name="studentId" type="hidden">{{ $studentId }}</input> 

Und in der Steuerung:

$studentId = $request->get('studentId'); 

Oder man kann es als zweiter Parameter übergeben, wenn Sie es in einem store() Methode verwenden möchten.

public function store(Request $request, $studentId) 
{ 
    echo $studentId; 
+0

Ja, warum nicht? Sie können auch vorhandenen Code verwenden und 'studentId' neben dem' sectionSubjectId' hinzufügen und ihn vom Request-Objekt auf die selbe Weise abrufen, wie Sie 'sectionSubjectId' erhalten. –

+0

Danke. Ich dachte für Sicherheitsprobleme. Aber vergiss das. Das Problem ist, dass die Übergabe von zwei Parametern an der addSubject-Methode auf meinem form.blade nicht funktioniert. Was ich gemacht habe, war {{$ section-> pivot-> id, $ student_id}}. Fehle ich hier etwas? – Jearson

+0

okay, ich habe es addSubject ({{$ section-> pivot-> id}}, {{$ student_id}}). – Jearson

Verwandte Themen