model()->orderByDesc('id'); $is_amdin = Admin::user()->isRole('administrator'); $user = Admin::user(); if(!$is_amdin){ $grid->model()->where(['organization_id'=>$user->org_id,'product_type'=>4]); } $grid->model()->GroupBy('patient_id'); $grid->column('orderUser.nickname', __('用户')); $grid->column('orderPatient.guardian_name', __('监护人')); $grid->column('orderPatient.name', __('患者')); $grid->column('patient.phone', __('监护人手机号')); $grid->column('orderPatient.birthday', __('出生日期')); $grid->column('patient_id', __('备注'))->display(function ($w) use($user) { return PatientRemark::where(['org_id'=>intval($user->org_id),'patient_id'=>$w,'type'=>2])->value('remark'); }); $grid->filter(function ($filter){ $filter->where(function ($query) { $query->whereHas('patient',function ($query){ $query->where('phone', 'like', "%{$this->input}%"); }); }, '请输入电话号码'); $filter->like('orderPatient.name','请输入患者姓名'); $filter->like('orderUser.nickname','请输入用户名'); $filter->like('orderPatient.guardian_name','请输入监护人姓名'); $filter->between('orderUser.birthday','生日')->datetime(); }); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(Order::findOrFail($id)); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new Order()); $form->setAction('/cdms/api/paitent_remark'); $form->hidden('patient_id'); $org_id = Admin::user()->org_id; $form->hidden('org_id')->default(intval($org_id)); $form->hidden('type')->default(2); $form->textarea('remark','备注')->default(function () use ($org_id,$form){ return PatientRemark::where(['org_id'=>intval($org_id),'patient_id'=>$form->model()->patient_id,'type'=>2])->value('remark'); }); return $form; } }