首页 > 解决方案 > Vuejs:使用 axios 制作依赖下拉列表

问题描述

我在显示依赖下拉列表时遇到问题。它获取了医院,但对于专业,它给了我一个没有错误的空数组,如下图所示:

在此处输入图像描述

我找不到我的错误在哪里它没有显示像这样的图像:

在此处输入图像描述

这是我的路线:

// Hospital
Route::get('hospital', 'ApiController@getHospital');
// Speciality
Route::get('speciality', 'ApiController@getSpeciality');

我的控制器:

// Speciality
public function getSpeciality(Request $request)
{
    $hosId = $request->input('hospital_id');
    
    $data = DB::table('tr_hospital_specialists as tr')
        ->select('tr.id','hospital_id','specialist_id','specialist_name')
        ->join('mst_specialists as sp', 'tr.specialist_id', '=', 'sp.id')
        ->join('mst_hospitals as hos', 'tr.hospital_id', '=', 'hos.id')
        ->where('hospital_id', $hosId)
        ->orderBy('specialist_name','asc')
        ->get();

    if ($data) {
        return response()->json([
            'success' => true,
            'message' =>'success',
            'data'    => $data
        ], 200);
    } else {
        return response()->json([
            'success' => false,
            'message' => 'Data not found.',
        ], 400);
    }
}

我的观点:

<div class="form-row">
    <div class="form-group col-md-6">
        <label class="text-white">Hospital</label>
        <model-list-select :list="hospital"
            v-model="optHospital"
            @change="getSpeciality"
            option-value="id"
            option-text="hospital_name"
            placeholder="Choose Hospital">
        </model-list-select>
    </div>
    <div class="form-group col-md-6">
        <label class="text-white">Speciality</label>
        <model-list-select :list="speciality"
            v-model="optSpeciality"
            option-value="specialist_id"
            option-text="specialist_name"
            placeholder="Choose Speciality">
        </model-list-select>
    </div>
</div>

这是我的脚本:

在此处输入图像描述

谢谢。

标签: laravelvue.jsaxios

解决方案


首先,您需要通过 hospital_id 获取专科,第二件事:如果您的专科响应将在 hostpital 响应之前被捕获怎么办?您需要将专业请求绑定到医院选择的选项。


推荐阅读