where('store_id', request('q'))->get(); $data = []; foreach($list as $item) { array_push($data, ['id' => $item->productSku->id, 'text' => $item->productSku->name]); } return $data; } protected function grid() { $grid = new Grid(StoreProductSku::with(['store', 'productSku.category'])); $grid->model()->orderBy('id', 'desc'); $grid->column('id', 'ID'); $grid->column('store.title', '店铺'); $grid->column('productSku.category.name', '分类'); $grid->column('productSku.name', '名称'); $grid->column('productSku.cost_price', '成本价')->display(function ($value) { return bcdiv($value, 100, 2);; }); $grid->column('productSku.sell_price', '销售价')->display(function ($value) { return bcdiv($value, 100, 2);; }); $grid->column('amount', '库存')->sortable(); $grid->column('productSku.specs', '规格')->label(); $grid->column('status', '状态')->switch(); $grid->paginate(10); $grid->showCreateButton(); $grid->enableDialogCreate(); $grid->showDeleteButton(); // $grid->showRowSelector(); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->equal('store_id')->select(Store::pluck('title', 'id'))->width(3); $filter->equal('productSku.category_id', '分类')->select(ProductCategory::withDepth()->having('depth', '=', 2)->pluck('name', 'id'))->width(3); $filter->like('productSku.name', '名称')->width(3); }); return $grid; } protected function form() { $form = Form::make(StoreProductSku::with(['productSku'])); $form->select('store_id')->options(Store::pluck('title', 'id')); $form->select('product_sku_id')->options(ProductSku::class)->ajax('api/product-skus'); $form->switch('status')->default(1); $form->saving(function (Form $form) { if ($form->isCreating()) { $store_id = $form->input('store_id'); $product_sku_id = $form->input('product_sku_id'); if (StoreProductSku::where(compact('store_id', 'product_sku_id'))->exists()) { return $form->response()->error('该商品已经存在'); } } }); return $form; } }