repository) $this->repository = $repository; } function index(Request $reqeust) { $search['keyword'] = $reqeust->input('keyword'); $query = $this->repository->pushCriteria(new MultiWhere($search)); if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) { $query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by'])); } $list = $query->paginate(); return view('admin.dream.info.index',compact('list')); } function check(Request $reqeust) { $request = $reqeust->all(); $search['keyword'] = $reqeust->input('keyword'); $orderby = array(); if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) { $orderby[$request['sort_field']] = $request['sort_field_by']; } $list = $this->repository->search($search,$orderby); return view('admin.dream.info.check',compact('list')); } /** * 添加 * */ public function create(Request $reqeust) { if($reqeust->method() == 'POST') { return $this->_createSave(); } $signs = BaseSettingsModel::where('category','sign')->orderBy('id')->get(); return view('admin.dream.info.edit',compact('signs')); } /** * 保存修改 */ private function _createSave(){ $data = (array) request('data'); $pics = (array) request('pic'); if (empty($pics)) { $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showWarning('请添加图片',$url); } $id = DreamInfoModel::insertGetId($data); if($id) { $arr = []; foreach ($pics['url'] as $pic) { $arr[] = [ 'pic'=>$pic, 'dream_id'=>$id, 'created_at'=>date("Y-m-d H:i:s"), 'updated_at'=>date("Y-m-d H:i:s"), ]; } DreamImages::insert($arr); $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); $url[] = array('url'=>U( 'Dream/Info/create'),'title'=>'继续添加'); $this->showMessage('添加成功',$url); }else{ $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showWarning('添加失败',$url); } } /** * * 修改 * * */ public function update(Request $reqeust) { if($reqeust->method() == 'POST') { // dd($reqeust->all()); return $this->_updateSave(); } $data = $this->repository->find($reqeust->get('id')); $imgs = $data->imgs; $arr = []; foreach ($imgs as $pic) { $arr[] = $pic['pic']; } $data->imgs = $arr; $signs = BaseSettingsModel::where('category','sign')->orderBy('id')->get(); return view('admin.dream.info.edit',compact('data','signs')); } /** * 保存修改 */ private function _updateSave() { $data = (array) request('data'); $pics = (array) request('pic'); if (empty($pics)) { $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showWarning('请添加图片',$url); } $old_data_pics = $this->repository->find(request('id'))->imgs->toArray(); $old_pics = array_column($old_data_pics,'pic'); $a = array_diff($pics['url'],$old_pics); $b = array_diff($old_pics,$pics['url']); if (!empty($a) || !empty($b)) { //有图片变化执行 // 删除以前图片 重新插入 if (!empty($b)) { foreach ($b as $old_pic){ if (is_file('.'.$old_pic)) { unlink('.'.$old_pic); } BaseAttachmentModel::where('url',$old_pic)->delete(); DreamImages::where('pic',$old_pic)->delete(); } } $arr = []; //插入新的图片 foreach ($a as $pic) { $arr[] = [ 'pic'=>$pic, 'dream_id'=>request('id'), 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s'), ]; } DreamImages::insert($arr); } $ok = $this->repository->update(request('id'),$data); if($ok) { $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showMessage('操作成功',urldecode(request('_referer'))); }else{ $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showWarning('操作失败',$url); } } public function view(Request $reqeust) { $data = $this->repository->find(request('id')); return view('admin.dream.info.view',compact('data')); } /** * * 状态改变 * */ public function status(Request $reqeust) { $ok = $this->repository->updateStatus(request('id'),request('status')); if($ok) { return $this->showMessage('操作成功'); }else{ return $this->showWarning('操作失败'); } } /** * 删除 */ public function destroy(Request $reqeust) { $bool = $this->repository->destroy($reqeust->get('id')); if($bool) { $old_data_pics = DreamInfoModel::find($reqeust->get('id'))->imgs->toArray(); $old_pics = array_column($old_data_pics,'pic'); if (!empty($old_pics)) { foreach ($old_pics as $old_pic){ if (is_file('.'.$old_pic)) { unlink('.'.$old_pic); } BaseAttachmentModel::where('url',$old_pic)->delete(); } } DreamImages::where('dream_id',$reqeust->get('id'))->delete(); return $this->showMessage('操作成功'); }else{ return $this->showWarning("操作失败"); } } }