如何将ID传递给将使用该ID查询数据的函数

时间:2019-04-28 09:14:10

标签: laravel vue.js

首先,这是我的表格,其中显示了学生数据:

<div class="card-body table-responsive p-0">
    <table class="table table-hover">
        <tr>
            <th>Student ID</th>
            <th>Name(Lastname, Firstname)</th>
            <th>Contact</th>
            <th>Modify</th>
        </tr>
        <tr v-for="student in students.data" :key="student.student_id">
            <td>{{student.student_id}}</td>
            <td>{{student.lastname | upFirstLetter}}, {{student.firstname | upFirstLetter}} </td>
            <td>{{student.contact_no}}</td>
            <td>
                <a href="#" data-toggle="modal" data-target="#viewModal" @click="loadStudentData(student.student_id)">
                    <i class="fas fa-eye text-teal"></i>
                </a>
            </td>
        </tr>
    </table>
</div>

单击视图图标后,它将调用并把student_id传递给名为 loadStudentData()

的函数
loadStudentData(id) {
    this.form.show('api/loadData' + id).then(({data}) => (this.studentsData = data));
}

以及控制器内部的function show($id)

public function show($id)
{
    return Students::orderBy('student_id', 'asc')
        ->join('student_details', 'student_details.student_id', 'students.student_id')
        ->where('students.student_id', '=', $id)
        ->select('students.*', 'student_details.*');
}

这是我到目前为止已经尝试过的方法,我似乎无法使其正常工作。 预先感谢。

2 个答案:

答案 0 :(得分:0)

尝试Implicit Binding,那就更好了

答案 1 :(得分:0)

我认为您在'api/loadData'之后错过了一个斜杠。可能是

loadStudentData(id) {
    this.form.show('api/loadData/' + id).then(({data}) => (this.studentsData = data));
}

但是,您没有在此处发布路线。