hasOne(Company::class, 'id', 'company_id')->bind(['company_name']); } public function company() { return $this->hasOne(Company::class, 'id', 'company_id'); } public function partyA() { return $this->hasOne(Company::class, 'id', 'party_a')->bind(['party_a_name'=>'company_name']); } public function partyB() { return $this->hasOne(Company::class, 'id', 'party_b')->bind(['party_b_name'=>'company_name']); } public function contractType() { return $this->hasOne(DictData::class, 'id', 'contract_type')->bind(['contract_type_name'=>'name']); } public function getContractTypeNameAttr($value) { return DictData::where(['id' => $this->contract_type])->value('name'); } //生成合同 public static function Initiate_contract($data) { $model = self::where(['party_b'=>$data['party_b']])->find(); if (empty($model)) { $model = new Contract(); $model->party_b = $data['party_b']; $model->contract_no = time(); $model->create_time = time(); } $model->update_time = time(); $model->setAttrs($data); return $model->save($data); } }