首页 > 解决方案 > 如何正确从 laravel 查询中的客户表中获取“城市”字段?

问题描述

public function FindDomainDependCityClient(Request $request) {
         $city = Client::select('city')
              ->where('clients.id', '=', $request->id)
              ->get();

上面的查询没有得到任何结果,否则如果我在 mysql phpMyAdmin 中将 ($request->id) 替换为 'casablanca' (the city) 我会得到结果

    $data = Domaine::select('id_domain', 'nom_domain')
            ->where('Domaines.city', $city)
            ->get();

    return response()->json($data);

我使用 Jquery & Ajax 来获取数据

$(document).on('change', '#id', function() {
    var id = $(this).val();

    $.ajax({
        type: 'get',
        url: '{!! URL::to('/finddomaindependcityclient') !!}',
        data: {'id': id},
        success: function(data) {
            console.log('success !!');
            console.log(data);
            console.log(data.length);

            var fillDropDown = '<option selected disabled>Sélectionner le domaine</option>';
            for (var i = 0; i < data.length; i++) {
                fillDropDown += '<option value="'+ data[i].id_domain + '">' + data[i].nom_domain + '</option>';
            }
            $('#id_dom').html(""); //clear input values
            $('#id_dom').append(fillDropDown);
        },
        error: function(msg) {
            console.log('error getting data !!');
        }
    });
});

标签: phpmysqllaravel

解决方案


您需要从Client模型中获取城市名称。当您使用get()它时,它会为您提供一个集合,并且您的下一个查询不起作用。就这样吧

$city = Client::find($request->id)->city;

然后获取与城市相关的域

$data = Domaine::select('id_domain', 'nom_domain')
            ->where('city', $city)
            ->get();

推荐阅读