Javascript 使用ajax的Laravel5.6
我正在尝试使用AJAX从数据库中获取已排序的产品。但是,AJAX不断发送此错误 异常:“ErrorException” 文件:“C:\xampp\htdocs\WebProject\storage\framework\views\c39cbea2eafe7197b8efb68251988b2c5b3a6834.php” 线路:5 消息:“正在尝试获取非对象的属性‘URL’(视图:C:\xampp\htdocs\WebProject\resources\views\producto\u indiv.blade.php)” 问题是视图producto_indiv与ajax的javascript代码没有连接。错误来源的视图在被访问时不显示任何错误 这是producto_indiv,错误应该来自该视图,但是该视图与使用ajax代码的视图无关Javascript 使用ajax的Laravel5.6,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,我正在尝试使用AJAX从数据库中获取已排序的产品。但是,AJAX不断发送此错误 异常:“ErrorException” 文件:“C:\xampp\htdocs\WebProject\storage\framework\views\c39cbea2eafe7197b8efb68251988b2c5b3a6834.php” 线路:5 消息:“正在尝试获取非对象的属性‘URL’(视图:C:\xampp\htdocs\WebProject\resources\views\product
<div class="contenedor" id="Producto_Indiv_Page">
<div class="item-cont">
<?php $url = "/storage/images/products/" . basename($producto->URL); ?>
<img src="{{$url}}">
<div class="line"></div>
<div class="traits">
<div><span class="name">{{$producto->nombre_prod}}</span></div>
<span>Precio: ${{$producto->precio}}</span>
<span>Descripcion: {{$producto->descripcion}}</span>
<span>marca: {{$producto->marca}}</span>
<span>tamanos: {{$producto->tamanos}}</span>
</div>
</div>
</div>
和控制器
public function sort(Request $request) {
$producto = DB::table('productos')->where('$request->genero')->get();
switch($request->type) {
case 'nombre':
$producto->orderBy('nombre_prod', 'asc');
break;
case 'marca':
$producto->orderBy('marca', 'asc');
break;
case 'precio_desc':
$producto->orderBy('precio', 'desc');
break;
case 'precio_desc':
$producto->orderBy('precio', 'desc');
break;
case 'new':
$producto->latest();
break;
case 'old':
$producto->oldest();
break;
}
return \Response::json($producto);
}
我以前一直坚持这样做,但改为使用重定向而不是ajax,但是在这种情况下,我无法这样做,因为我正在尝试对数据库发送的产品网格进行排序。这个问题已经出现,因为您的$producto对象没有Url,因此,请先检查$producto->URL,然后按以下方式传递URL
<?php
$productURl = "";
if(isset($producto->URL)) {
$productURl = $producto->URL;
}
?>
<div class="contenedor" id="Producto_Indiv_Page">
<div class="item-cont">
<?php $url = "/storage/images/products/" . basename($productURl); ?>
<img src="{{$url}}">
<div class="line"></div>
<div class="traits">
<div><span class="name">{{$producto->nombre_prod}}</span></div>
<span>Precio: ${{$producto->precio}}</span>
<span>Descripcion: {{$producto->descripcion}}</span>
<span>marca: {{$producto->marca}}</span>
<span>tamanos: {{$producto->tamanos}}</span>
</div>
</div>
</div>
{{$producto->nombre_prod}
Precio:${{$producto->Precio}
description:{{$producto->descripion}
马尔卡:{{$producto->marca}
塔马诺斯:{{$producto->tamanos}
这里有很多错误:
->get()
,然后添加查询约束。这将不起作用,因为查询已经执行where('$request->慷慨')
实际上不使用任何变量,因为您将其包装在字符串中where('$request->慷慨')
没有可供筛选的列,语法为where('慷慨',$request->慷慨)
sort()
代码更改为:
public function sort(Request $request) {
$producto = DB::table('productos')->where('genero', $request->genero);
switch($request->type) {
case 'nombre':
$producto->orderBy('nombre_prod', 'asc');
break;
case 'marca':
$producto->orderBy('marca', 'asc');
break;
case 'precio_desc':
$producto->orderBy('precio', 'desc');
break;
case 'precio_desc':
$producto->orderBy('precio', 'desc');
break;
case 'new':
$producto->latest();
break;
case 'old':
$producto->oldest();
break;
}
return \Response::json($producto->get());
}
问题是我不会进入那个网站。这些是我的路线。路由::get('/ropa/{id}','PagesControl@viewItem')->名称('项目');路由::get('/ropa/sort','PagesControl@sort'); 此外,当我加载页面时,没有任何错误,每个对象都正确加载。我已经检查了数据库,以防它在某个地方是一个空计算,但它是完整的。错误是:“试图获取非对象的属性‘URL’”。这意味着
$producto
不是一个对象。什么是dd($producto)代码>输出?这里是任何产品{#463的dd▼ +“id”:14+“nombre_prod”:“Camisa Roja”+“cantidad”:10+“precio”:250.0+“marca”:“tommy”+“Grando”:“hombre”+“tamanos”;“small”+“Description”:“Camisa para hombre”+“URL”:“public/images/products/Kmqmky8ol9qc8ihql2ovglmnptyvx49or0eyagbl.jpeg”+“创建于”;“2018-04-10 20:48:07”;“更新于2018-04-10:48:07”您能否更改$producto=DB::table('productos')->where('$request->慷慨')->get();替换为DB::table('productos')->where($request->慷慨)->get();线路。删除数据库内控制器中的单个qoute romevequery@NissimBet您是在您的视图中这样做的吗?您能分享您的ropa/sort
路线吗?您确定它指向您共享的功能吗?您的排序功能错误。只有在切换之后,您才需要调用get()
,以确保查询添加真正起作用。@apokryfos这是两个路由,id是访问单个文件的路由,错误似乎来自于此,排序是我试图使工作路由::get('/ropa/{id}','PagesControl@viewItem')->名称('项目');路由::get('/ropa/sort','PagesControl@sort');如果ropa/{id}
在ropa/sort
之前声明,它将覆盖它。为什么它们不不同呢??无论如何,更改了排序的路由,同样的500内部服务器错误,尽管消息更改为“Sfdump=window.Sfdump | |(函数(doc){var refStyle=doc.createElement('style'),rxEsc=/([.+?^${}()\[\]\/\\\\\]/g,idRx=/\\bsf dump-\\d+-ref[012]\\w+\\b/,[…])”/ropa/sort
匹配/ropa/{id}
当id=sort
这个错误可能与我之前提到的另一点有关。谢谢你,伙计,这解决了问题,我不知道路由会这样覆盖
public function sort(Request $request) {
$producto = DB::table('productos')->where('genero', $request->genero);
switch($request->type) {
case 'nombre':
$producto->orderBy('nombre_prod', 'asc');
break;
case 'marca':
$producto->orderBy('marca', 'asc');
break;
case 'precio_desc':
$producto->orderBy('precio', 'desc');
break;
case 'precio_desc':
$producto->orderBy('precio', 'desc');
break;
case 'new':
$producto->latest();
break;
case 'old':
$producto->oldest();
break;
}
return \Response::json($producto->get());
}