2016-05-27 3 views
0

Ich habe Problem beim Abrufen der URI einer verschachtelten Ressource bei Verwendung von Vue js. Siehe untenstehenden Code.Wie uri Adresse eines verschachtelten Ressourcen mit Vue js und Laravel

ReservationController.php

public function index($id) 
    { 

     $student = Student::with(['sectionSubjects','sectionSubjects.section', 
        'sectionSubjects.subject'])->findOrFail($id); 

     return $student->sectionSubjects; 

    } 

all.js

methods:{ 

     fetchSubjects: function(){ 
      var self = this; 
      this.$http({ 
       url: 'http://localhost:8000/reservation/id/student', 
       method: 'GET' 
      }).then(function (reservations){ 
       this.$set('reservations', reservations.data); 
       console.log('success'); 

      }, function (response){ 
       console.log('failed'); 
      }); 
     } 
    } 

Das Problem hier ist, http://localhost:8000/reservation/id/student den Wert der ID dieser URL zu bekommen. Gibt es eine Möglichkeit, die ID des Parameters der index() -Methode zu erhalten? Auch hier ist meine Route Liste http://imgur.com/8MWaCpO

+0

Ihre App würde wissen müssen, um die ID, an die Sie die Anfrage senden möchten, sodass Sie die Reservierung mit einer http-Anfrage abrufen müssen. – Jeff

+0

@Jeff Ja, das ist mein Problem, ich kann keine Wege finden, diese ID zu holen, bevor ich die URI abhole. Kannst du mir ein Beispiel geben? – Jearson

Antwort

0

Wenn ich Ihre Frage richtig verstanden, möchten Sie die Studenten-ID von der index Methode in Ihrem Controller zurückgegeben?

Wenn ja, müssen Sie es so in Ihrem Controller tun:

public function index($id) 
{ 

    $student = Student::with(['sectionSubjects','sectionSubjects.section', 
       'sectionSubjects.subject'])->findOrFail($id); 

    return [ 
     'student_id' => $id, 
     'reservations' => $student->sectionSubjects 
    ]; 

} 

und die Matrikelnummer auf Ihrem JS wie folgt abzurufen:

methods: { 

    fetchSubjects: function() { 
     var self = this; 
     this.$http({ 
      url: 'http://localhost:8000/reservation/id/student', 
      method: 'GET' 
     }).then(function (response) { 
      this.$set('studentId', response.student_id); // <-- change here 
      this.$set('reservations', response.reservations.data); // <-- change here 
      console.log('success'); 
     }, function (response) { 
      console.log('failed'); 
     }); 
    } 
} 
+0

Das wird fehlschlagen, weil die ID nicht definiert ist - http: // localhost: 8000/reservation/id/student ' – Jearson

+0

Ok, ich habe Ihre Frage falsch verstanden, können Sie den Code anzeigen, den Sie zum Laden der Seite verwenden, auf der die fetchSubjects aufgerufen wird ? Idealerweise sollte Ihr Controller und Code angezeigt werden. –

Verwandte Themen