'Index', // 'show' => 'Show', // 'edit' => 'Edit', // 'create' => 'Create', ]; /** * Set translation path. * * @var string */ protected $translation; /** * Get content title. * * @return string */ protected function title() { return $this->title ?: admin_trans_label(); } /** * Get description for following 4 action pages. * * @return array */ protected function description() { return $this->description; } /** * Get translation path. * * @return string */ protected function translation() { return $this->translation; } /** * Index interface. * * @param Content $content * @return Content */ public function index(Content $content) { return $content ->translation($this->translation()) ->title($this->title()) ->description($this->description()['index'] ?? trans('admin.list')) ->body($this->grid()); } /** * Show interface. * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { if ($this->distFindCountByID($id) === 0) { abort(404); } return $content ->translation($this->translation()) ->title($this->title()) ->description($this->description()['show'] ?? trans('admin.show')) ->body($this->detail($id)); } /** * Edit interface. * * @param mixed $id * @param Content $content * @return Content */ public function edit($id, Content $content) { if ($this->distFindCountByID($id) === 0) { abort(404); } return $content ->translation($this->translation()) ->title($this->title()) ->description($this->description()['edit'] ?? trans('admin.edit')) ->body($this->form()->edit($id)); } /** * Create interface. * * @param Content $content * @return Content */ public function create(Content $content) { return $content ->translation($this->translation()) ->title($this->title()) ->description($this->description()['create'] ?? trans('admin.create')) ->body($this->form()); } /** * Update the specified resource in storage. * * @param int $id * @return \Illuminate\Http\Response */ public function update($id) { if ($this->distFindCountByID($id) === 0) { abort(404); } return $this->form()->update($id); } /** * Store a newly created resource in storage. * * @return mixed */ public function store() { return $this->form()->store(); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { if ($this->distFindCountByID($id) === 0) { abort(404); } return $this->form()->destroy($id); } /* * 查找当前数据是否属于当前分销商 * -1 form方法不存在 * 0 数据不存在 * 1以上 数据存在 */ protected function distFindCountByID($id) { //如果有form方法,查找数据 if (method_exists($this, 'Form')) { $idArray = explode(',', $id); // 使用 array_map 将数组中的每个值转换为数字类型 $idArray = array_map('intval', $idArray); $form = $this->Form(); $repository = $form->repository(); $count = $repository->model()->where('dist_id', getDistributorId())->wherein('id', $idArray)->count(); if ($count === 0) { //0数据不存在 return 0; } else if ($count !== count($idArray)) { //0数据异常 return 0; } else { //数据存在 return 1; } } //form方法不存在 return -1; } }