newQuery()->where('id','0'); } $ownerIds=$user->getPermittingOwnerIdsAttribute(); return (new static)->newQuery()->whereIn('id',$ownerIds); } public function owner(){ return $this->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')->where('field','unit_price'); } public function automaticSupplementSign(){ return $this->hasOne('App\Sign','signable_id','id') ->where('signable_type','processes')->where('field','automatic_supplement'); } 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(); } }