【问题标题】:I need to make a multiple-search on Laravel我需要在 Laravel 上进行多次搜索
【发布时间】:2021-02-03 14:05:46
【问题描述】:

我想创建一个过滤器来查找诸如工作订单状态、员工、月份之类的内容(这里我必须将月份与其余日期分开)

好的,我一个人在这个项目上工作,所以我需要一些帮助。

我在我的数据库中有类似的关系

employee.employee_id inner join main.employee_id_created(我直接在phpmyadmin上做了)

所以我想按员工姓名搜索,但它在另一张桌子上,所以当我想显示结果时它会向我发送一个错误

    public function()
{
 if($request)
        {
            $query = trim($request->get('searchBy'));
                    
        }
        
        $searchByName = MaintenanceTasks::select('Employee_Id_created')
        ->join('employee', 'employee.Employee_Id', '=', 'maintenance_tasks.Employee_Id_created')
        ->where('Employee_name','like','%'.$query.'%')
        ->get(); 
}

blade.php

 @foreach($searchByName as $otList)
                    <td>{{$otList->getTaskId()}}</td>
                    @foreach($machine as $machineData)
                @if($otList->Machine_Id == $machineData->Machine_Id)
                @foreach($employee as $employeeData)
                @if($machineData->Employee_Id == $employeeData->Employee_Id)
                <td>{{$employeeData->getEmployeeName()}}</td>
                @endif              
                @endforeach
                @endif
                @endforeach //and so on

我想使用 when 进行多重搜索,但它不起作用

【问题讨论】:

  • 你遇到了什么错误?

标签: php html laravel search


【解决方案1】:

您只是选择了 Employee_Id_created,因此您的查询结果中除了 Employee_Id_created 之外没有其他数据。 向select添加更多列。

【讨论】:

    【解决方案2】:

    创建多重搜索

    if (!empty($req1)) {
        $serach= $serach->where('col', 'like', '%'.$req1.'%');
    }
    
    if (!empty($req2)) {
        $serach= $serach->where('col', 'like', '%'.$req2.'%');
    }
    
    $serach= $serach->get();
    

    其他选项

    ->where([
    ['col1', 'like', '%'.$req2.'%'],
    ['col2', 'like', '%'.$req2.'%'],
    ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      相关资源
      最近更新 更多