Передача нескольких переменных с помощью axios в контроллер - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь вставить лекцию в таблицу учеников.Мне нужно передать идентификатор студента, а также лекцию контролеру.Я использую axios, чтобы отправить 2 параметра в контроллер.Мои коды не работают, я сделал это неправильно?Новое в Ларавеле.спасибо

Vue Компонент

<a href="" @click="setLectureFK(student.student_id)"><i class="fas fa-user-plus"></i></a>


<script>
export default {
    data () {
        return {
        student:'',
        lecture_id:this.$route.params.id,
        }
    },
    methods:{
        setLectureFK($student_id){
             axios.post('/api/internship/setLecture/'+$lecture_id,'/'+$student_id);
        }
    },
}

Контроллер

public function setLecture($lecture,$student)
{
    $student = student::findOrFail($student);
    $student->lecture_id_FK = $lecture;
    $student->save();
}

API.PHP

Route::post('internship/setLecture/{lecture}/{student}', 'API\InternshipController@setLecture')->name('internship.setLecture');

Ответы [ 2 ]

0 голосов
/ 07 апреля 2019

Попробуйте это:

Vue Component

<a href="" @click="setLectureFK(student.student_id)"><i class="fas fa-user-plus"></i></a>


<script>
export default {
    data () {
        return {
        student:'',
        lecture_id:this.$route.params.id,
        }
    },
    methods:{
        setLectureFK(student_id){
             axios.post('/api/internship/setLecture',{student_id:student_id,lecture_id:this.lecture_id});
        }
    },
}

Контроллер

public function setLecture(Request $request)
{
    $student = student::findOrFail($request->student_id);
    $student->lecture_id_FK = $request->lecture_id;
    $student->save();
}

API.php

Route::post('internship/setLecture', 'API\InternshipController@setLecture')->name('internship.setLecture');
0 голосов
/ 07 апреля 2019

Насколько я вижу, в вашем компоненте vue есть синтаксическая ошибка.
В этой строке

axios.post('/api/internship/setLecture/'+$lecture_id,'/'+$student_id);

Вы поставили запятую вместо +, она должна выглядеть следующим образом

 axios.post('/api/internship/setLecture/'+$lecture_id+'/'+$student_id);
...