status = $status; $this->keyword = $keyword; $this->limit = $limit; $this->offset = $offset; } public function headings(): array { return [ '反馈人ID', '反馈人', '反馈人头像地址', '联系方式', '反馈内容', '反馈图片', '反馈时间', ]; } //设置列格式 public function columnFormats(): array { return [ 'A' => NumberFormat::FORMAT_TEXT, ]; } public function collection() { $status = $this->status; $histories = FeedbackHistory::with('user')->whereHas('user', function($sql){ $sql->where('id', '>', 0); })->where('status', $status); $keyword = $this->keyword; if ($keyword) { $keyword = trim($keyword); $histories = $histories->where(function($sql) use($keyword){ $sql->whereHas('user', function($sql) use($keyword){ $sql->where('name', 'like', '%'.$keyword.'%') ->orWhere('mobile', 'like', '%'.$keyword.'%'); })->orWhere('content', 'like', '%'.$keyword.'%'); }); } $histories = $histories->limit($this->limit)->offset($this->offset)->orderBY('id', 'desc')->get(); $data = []; foreach ($histories as $k => &$history) { $data[$k]['user_id'] = $history->user_id; $data[$k]['name'] = $history->user->name; $data[$k]['photo'] = $history->user->photo; $data[$k]['mobile'] = $history->user->mobile; $data[$k]['content'] = $history->content; $data[$k]['photos'] = $history->photos; $data[$k]['created_at'] = $history->created_at; } return collect($data); } }