使用axios将多个变量传递给控制器​​laravel

时间:2019-04-07 17:35:52

标签: php laravel eloquent axios

我正在尝试在学生表格中插入演讲ID。我需要将学生的ID和讲座的ID传递给控制器​​。我正在使用axios将2个参数发布到控制器。我的代码不起作用,我做错了吗? Laravel的新功能。谢谢

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 :(得分:0)

据我所知,您的vue组件中存在语法错误。
在这一行

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

您用逗号代替+应该是这样

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

答案 1 :(得分:0)

尝试一下:

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',{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');