jingyuzhi 4 år sedan
förälder
incheckning
f5615c1d1d
2 ändrade filer med 42 tillägg och 16 borttagningar
  1. 27 10
      app/Admin/Controllers/VaccinesManagement/VaccinesController.php
  2. 15 6
      app/Models/Vaccine.php

+ 27 - 10
app/Admin/Controllers/VaccinesManagement/VaccinesController.php

xqd xqd xqd xqd
@@ -32,7 +32,7 @@ class VaccinesController extends AdminController
         $grid->column('id', __('Id'));
         $grid->column('type', '类型')->using([1=>'Ⅰ类疫苗',2=>'Ⅱ类疫苗']);
         $grid->column('name', __('名称'));
-        $grid->column('introduction','简介');
+//        $grid->column('introduction','简介');
         $grid->column('price', __('价钱'));
         $grid->column('remark', __('备注'));
         $grid->column('supplier', __('厂家'));
@@ -44,16 +44,16 @@ class VaccinesController extends AdminController
         $grid->column('organizations', '机构')->display(function (){
             return '点击查看';
         })->modal('机构库存', function ($model) {
-
             $org = $model->organizationvaccines()->get()->map(function ($comment) {
                 return $comment->only(['org_id', 'stock']);
             });
-//            $id = $model->organizationvaccines()->value('org_id');
-//            $names = Organization::where('id',$id)->value('name');
-//            $comments = $org->toArray();
-//            $comments[0]['name'] = $names;
-//            dd($id);
-            return new Table(['ID', '库存' ], $org->toArray());
+            $org = $org->toArray();
+            for($i=0;$i<count($org);$i++)
+            {
+                $id = $org[$i]['org_id'];
+                $org[$i]['org_name'] = Organization::where('id',$id)->value('name');
+            }
+            return new Table(['ID', '库存' ,'机构名称'], $org);
         });
 
         $grid->column('stock','库存');
@@ -70,10 +70,27 @@ class VaccinesController extends AdminController
             // 在这里添加字段过滤器
             $filter->column(1/2, function ($filter) {
                 $filter->equal('type', '类型')->select(Vaccines::$_post_type);
+                $filter->equal('supplier','厂家');
             });
+            $filter->column(1/2, function ($filter) {
+               $filter->equal('name','疫苗名称');
+//               $filter->in('organizations','机构名称')->select(Organization::all()->pluck('name','id'));
+                $filter->where(function ($query) {
+                    $query->join('organization_vaccines', 'organization_vaccines.vaccine_id', '=', 'vaccines.id')
+                        ->where('organization_vaccines.org_id',$this->input);
+                },'机构名称')->select(Organization::all()->pluck('name','id'));
+
+//                $filter->where(function ($model){
+//                    $model->whereHas('organizationvaccines',function ($model) {
+//                    $model->join('vaccines', 'organization_vaccines.vaccine_id', '=', 'vaccines.id')
+//                        ->where('vaccines.id',$this->input)
+//                        ->get();
+//                    });
+//
+//                },'机构名称1')->select(Organization::all()->pluck('name','id'));
 
+            });
         });
-
         //按关键字查询
         $grid->quickSearch(function ($model, $query) {
             //$model->whereHas('Vaccines',function ($model) use ($query) {
@@ -134,7 +151,7 @@ class VaccinesController extends AdminController
 
         $form->select('type', __('分类'))->options(Vaccines::$_post_type)->default('1');
         $form->text('name', __('名称'))->rules('required|min:3|max:255',['required'=>'请填写名称','min'=>'名称不能少于3个字符!','max'=>'名称长度过长!']);
-        $form->text('introduction','简介')->rules('required',['require'=>'请填写疫苗简介!' ]);
+//        $form->text('introduction','简介')->rules('required',['require'=>'请填写疫苗简介!' ]);
         $form->currency('price', __('价格'))->symbol('分');
         $form->text('remark', __('备注'))->rules('required',['required'=>'请填写备注!']);;
         $form->text('supplier', __('厂家'))->rules('required',['required'=>'请填写厂家!']);

+ 15 - 6
app/Models/Vaccine.php

xqd
@@ -1,14 +1,23 @@
 <?php
-/**
- * Created by PhpStorm.
- * User: zilongs
- * Date: 20-10-4
- * Time: 下午3:24
- */
 
 namespace App\Models;
 
 class Vaccine extends BaseModel
 {
+    //
+    public static $_post_type = [
+        1=>"Ⅰ类疫苗",
+        2=>"Ⅱ类疫苗"
+    ];
+    //导入格式
+    protected $fillable = ['type','price',"name","remark","supplier",'stock','states'];
 
+    public function organization()
+    {
+        return $this->belongsToMany(Organization::class,'org_id');
+    }
+
+    public function organizationvaccines(){
+        return $this->hasMany(OrganizationVaccines::class,'vaccine_id');
+    }
 }