belongsTo('App\Owner','owner_id','id'); } public function processMethod(){ return $this->belongsTo('App\ProcessMethod','process_method_id','id'); } public function tutorials(){ return $this->belongsToMany('App\Tutorial','process_tutorial','process_id','tutorial_id'); } public function processesContents(){ return $this->hasMany('App\ProcessesContent','process_id','id'); } public function processDailies(){ return $this->hasMany('App\ProcessDaily','process_id','id'); } public function operatorLogs(){ return $this->hasMany('App\OperatorLog','operator_logable_id','id') ->where('operator_logable_type','processes')->orderBy('id','DESC'); } public function signs(){ return $this->hasMany('App\Sign','signable_id','id') ->where('signable_type','processes'); } public function getOwnerNameAttribute() { return $this['owner']? $this['owner']['name']:null; } public function getProcessMethodNameAttribute() { return $this['processMethod']? $this['processMethod']['name']:null; } public function createOperatorLog($operation){ OperatorLog::create([ 'operator_logable_type'=>'processes', 'operator_logable_id'=>$this->id, 'user_id'=>Auth::id(), 'operation'=>$operation ]); } public function createSign($mark){ return Sign::create([ 'signable_type'=>'processes', 'signable_id'=>$this->id, 'field'=>'unit_price', 'mark'=>$mark ]); } public function destroySign(){ Sign::where('signable_type','processes')->where('signable_id',$this->id)->where('field','unit_price')->delete(); } }