php - 如何正确从 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 !!');
}
});
});
解决方案
您需要从Client
模型中获取城市名称。当您使用get()
它时,它会为您提供一个集合,并且您的下一个查询不起作用。就这样吧
$city = Client::find($request->id)->city;
然后获取与城市相关的域
$data = Domaine::select('id_domain', 'nom_domain')
->where('city', $city)
->get();