['bail', 'required', 'date_format:Y-m'], 'store_id' => ['bail', 'required', 'int'], 'commission' => ['bail', 'required', 'numeric'], 'daily_expenses' => ['bail', 'required', 'numeric'], 'employee_expenses' => ['bail', 'required', 'numeric'], 'other_expenses' => ['bail', 'required', 'numeric'], ], attributes: [ 'month' => __('finance.store_master_commission.month'), 'store_id' => __('finance.store_master_commission.store'), 'commission' => __('finance.store_master_commission.commission'), 'daily_expenses' => __('finance.store_master_commission.daily_expenses'), 'employee_expenses' => __('finance.store_master_commission.employee_expenses'), 'other_expenses' => __('finance.store_master_commission.other_expenses'), ], ); admin_abort_if($validator->fails(), $validator->errors()->first()); $attributes = $validator->validated(); $store = Store::findOrFail($attributes['store_id']); $attributes['store_master_id'] = $store->master_id; $this->modelName::create($attributes); return true; } public function update($primaryKey, $data): bool { $validator = Validator::make( data: $data, rules: [ 'month' => ['filled', 'required', 'date_format:Y-m'], 'store_id' => ['filled', 'required', 'int'], 'commission' => ['filled', 'required', 'numeric'], 'daily_expenses' => ['filled', 'required', 'numeric'], 'employee_expenses' => ['filled', 'required', 'numeric'], 'other_expenses' => ['filled', 'required', 'numeric'], ], attributes: [ 'month' => __('finance.store_master_commission.month'), 'store_id' => __('finance.store_master_commission.store'), 'commission' => __('finance.store_master_commission.commission'), 'daily_expenses' => __('finance.store_master_commission.daily_expenses'), 'employee_expenses' => __('finance.store_master_commission.employee_expenses'), 'other_expenses' => __('finance.store_master_commission.other_expenses'), ], ); admin_abort_if($validator->fails(), $validator->errors()->first()); $attributes = $validator->validated(); $model = $this->query()->whereKey($primaryKey)->firstOrFail(); // 如果门店发生改变,则更新店长 if ($model->store_id != $attributes['store_id']) { $store = Store::findOrFail($attributes['store_id']); $attributes['store_master_id'] = $store->master_id; } return $model->update($attributes); } public function sortColumn() { return 'id'; } }