【问题标题】:Global Search not working with laravel全局搜索不适用于 laravel
【发布时间】:2018-08-06 13:28:33
【问题描述】:

大家好,我正在尝试对我的项目进行特定搜索,但它不想工作,我正在使用关系,这是我的代码 php:

public function todos_productos($empresa_id, Request $request)
{


    $empresa = Empresa::find($empresa_id);
    $productos = $empresa->productos()->with('producto_nombre', 'producto_nombre.seccion', 'producto_nombre.linea');

    return Datatables::of($productos)
        ->filter(function ($query) use ($request) {
            if ($request->has('codigo')) {
                $query->where('producto_nombre.codigo', 'like', "%{$request->get('codigo')}%");
            }
        })
        ->make(true);

}

我的js

$(document).ready(function () {

  empresa = $('#empresa_id').val()
  tablaBusqueda = $('#postTable').DataTable({

    processing: true,
    serverSide: true,
    ajax: {
      url: 'api/productos/todos/' + empresa,
      data: function (d) {
        d.codigo = $('input[name=consulta_producto_codigo]').val()
        d.linea = $('select[name=consulta_producto_linea]').val()
        d.seccion = $('select[name=consulta_producto_seccion]').val()
      }
    },
    columns: [
      {data: 'codigo', name: 'producto_nombre.codigo'},
      {data: 'descripcion', name: 'producto_nombre.descripcion'},
      {data: 'existencias', name: 'existencias'},
      {data: 'precio', name: 'precio'},
      {data: 'stock_minimo', name: 'stock_minimo'},
      {data: 'stock_maximo', name: 'stock_maximo'},
      {data: 'producto_nombre.linea.nombre', name: 'producto_nombre.linea.nombre'},
      {data: 'producto_nombre.seccion.nombre', name: 'producto_nombre.seccion.nombre'}
    ],

    'language':
      {
        'url':
          '../plugins/dataTables.spanish.lang'
      }
  })

})

问题是,当我尝试通过 codigo(code) 搜索时,它说没有 producto_nombre.codigo 列,我只用 codigo 替换了它,但也不起作用,有人知道为什么吗?

【问题讨论】:

    标签: javascript jquery laravel datatable yajra-datatable


    【解决方案1】:

    $empresa 是单个 Empresa 模型实例。 $productos 是(假设)Producto 模型的 Eloquent 集合,具有两个急切加载的关系 producto_nombreproducto_nombre.seccion。任何查询都将在(假设)productos 表而不是您的关系表上运行。

    以下是限制急切加载的方法:https://laravel.com/docs/5.6/eloquent-relationships#constraining-eager-loads

    【讨论】:

      猜你喜欢
      • 2016-12-30
      • 2019-03-08
      • 2018-03-23
      • 2018-09-15
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 2022-08-11
      • 1970-01-01
      相关资源
      最近更新 更多