问题 Ajax Laravel 5.7 和 eloquent
Problem Ajax with Laravel 5.7 and eloquent
控制器路径
Route::get('ajax-BodegasFind','AjaxController@ajaxBodegasFind')->name('ajax.bodegasfind');
函数"ajaxBodegasFind"
public function ajaxBodegasFind(Request $Request)
{
$Tienda = new Tienda;
$Bodegas = $Tienda::find($Request)->bodegas();
return $Bodegas->toJson();
}
Ajax 脚本
$(document).ready(function(){
$('#cod_tienda').change(function(e){
e.preventDefault();
var ctienda = $("#cod_tienda").val();
$.ajax({
type: 'get',
url:'{{route('ajax.bodegasfind')}}',
data: {
"ctienda": ctienda,
},
dataType: 'json',
success: function(data){
console.log(data);
$('#cod_bodega').html(data);
}
});
});
});
型号天达
public function bodegas(){
return $this->hasMany('genericlothing\Bodega','cod_tienda','cod_tienda');
}
错误:
加载资源失败:服务器响应状态为 500(内部服务器错误)/ajax-BodegasFind?ctienda=3:1
方法Illuminate\Database\Eloquent\Collection::酒窖不存在。
或者toJson方法不存在,很奇怪
PD:
- 我已经尝试了 csrf 令牌,一切都是一样的。
你这样修改你的代码:
public function ajaxBodegasFind(Request $Request)
{
$Bodegas = (Tienda::find($Request->id))->bodegas;
return $Bodegas->toJson();
}
你的Tienda应该有酒窖关系法
在 find 方法中,您应该发送 id 而不是 Request 对象。也许您更改了 find 方法。如果你这样做没关系
希望对你有帮助
不能在实例对象上调用静态查找方法,也不能在查找方法中传递请求对象。它只需要主键 ID。您应该通过以下两种方式更改代码。您的模型中必须有徽章关系(如果您想获取相关数据)。否则只需调用 属性.
选项 1.
public function ajaxBodegasFind(Request $Request)
{
$Tienda = new Tienda;
$Bodegas = $Tienda->find($Request->id)->bodegas;
return $Bodegas->toJson();
}
选项 2.
public function ajaxBodegasFind(Request $Request)
{
$Bodegas = Tienda::find($Request->id)->bodegas;
return $Bodegas->toJson();
}
控制器路径
Route::get('ajax-BodegasFind','AjaxController@ajaxBodegasFind')->name('ajax.bodegasfind');
函数"ajaxBodegasFind"
public function ajaxBodegasFind(Request $Request)
{
$Tienda = new Tienda;
$Bodegas = $Tienda::find($Request)->bodegas();
return $Bodegas->toJson();
}
Ajax 脚本
$(document).ready(function(){
$('#cod_tienda').change(function(e){
e.preventDefault();
var ctienda = $("#cod_tienda").val();
$.ajax({
type: 'get',
url:'{{route('ajax.bodegasfind')}}',
data: {
"ctienda": ctienda,
},
dataType: 'json',
success: function(data){
console.log(data);
$('#cod_bodega').html(data);
}
});
});
});
型号天达
public function bodegas(){
return $this->hasMany('genericlothing\Bodega','cod_tienda','cod_tienda');
}
错误:
加载资源失败:服务器响应状态为 500(内部服务器错误)/ajax-BodegasFind?ctienda=3:1
方法Illuminate\Database\Eloquent\Collection::酒窖不存在。
或者toJson方法不存在,很奇怪
PD:
- 我已经尝试了 csrf 令牌,一切都是一样的。
你这样修改你的代码:
public function ajaxBodegasFind(Request $Request)
{
$Bodegas = (Tienda::find($Request->id))->bodegas;
return $Bodegas->toJson();
}
你的Tienda应该有酒窖关系法 在 find 方法中,您应该发送 id 而不是 Request 对象。也许您更改了 find 方法。如果你这样做没关系 希望对你有帮助
不能在实例对象上调用静态查找方法,也不能在查找方法中传递请求对象。它只需要主键 ID。您应该通过以下两种方式更改代码。您的模型中必须有徽章关系(如果您想获取相关数据)。否则只需调用 属性.
选项 1.
public function ajaxBodegasFind(Request $Request)
{
$Tienda = new Tienda;
$Bodegas = $Tienda->find($Request->id)->bodegas;
return $Bodegas->toJson();
}
选项 2.
public function ajaxBodegasFind(Request $Request)
{
$Bodegas = Tienda::find($Request->id)->bodegas;
return $Bodegas->toJson();
}