【问题标题】:Unknown column When using Laravel未知列使用 Laravel 时
【发布时间】:2022-01-15 11:44:17
【问题描述】:

我想显示搜索结果'devname'表单表设备 可以在报告表中找到,所以

public  function show_report()
    {
         $device = device::all();
         $reports = report::all();
         if (request()->has('keyword')) {
            $keyword = request()->keyword;
            $reports = report::latest() 
                ->where('title', 'like', "%$keyword%")
                ->orwhere($reports->device->devname, 'like', "%$keyword%")
                ->paginate(10);
        } else {
            $reports = report::orderBy('id', 'desc')->paginate(10);
        }
        return view('admin/reports.show_report', compact('dev', 'reports'));
    }

SQLSTATE[42S22]:未找到列:1054 'where 子句'中的未知列'$reports'

【问题讨论】:

  • 一个更具描述性的标题可能会有所帮助,有很多人在使用 laravel。
  • $reports->device->devname == $reports?

标签: php laravel


【解决方案1】:

这是你需要的:

public function show_report(Request $request)
{
    $devices = Device::all();
    $reports = Report::query();

    if ($keyword = $request->keyword) { // here you can set variable $keyword
        $reports = $reports
            ->join('devices', 'reports.device_id', '=', 'devices.id') // use join to take devices table
            ->where('reports.title', 'like', "%$keyword%")
            ->orwhere('devices.devname', 'like', "%$keyword%");
    } 

    $reports = $reports->orderBy('id', 'desc')->paginate(10);

    // in compact function the correct variable name is "devices", "dev" is an unknown variable
    return view('admin/reports.show_report', compact('devices', 'reports')); 
}

【讨论】:

    猜你喜欢
    • 2015-08-12
    • 2017-11-05
    • 2015-04-01
    • 1970-01-01
    • 2020-02-06
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多