validate([ 'process_id' => 'integer' ]); if (!isset($this->process)) { $this->process = $this->_getProcess(); if ($this->process->status->code != $this->beforeStates()) { throw new AppException("{$this->process->name}流程处于{$this->process->status->name}状态,无法执行{$this->name}操作"); } } return $this->process; } /** * @return \Illuminate\Database\Eloquent\Model * @throws \Exception */ public function toNextState() { $data = $this->getProcess()->toNextStatus(); return $data; } /** * @return \Illuminate\Database\Eloquent\Model * @throws \Exception */ public function toCancelState() { $data = $this->getProcess()->toCancelStatus(); return $data; } }