hasOne(CostProject::class, 'id', 'project_id'); } public function getKaigongAttr($value): string { return !empty($value) ? date('Y-m-d',$value) : ''; } public function getJungongAttr($value): string { return !empty($value) ? date('Y-m-d',$value) : ''; } public function getRtypeTextAttr($value,$data) { $dict = DictData::where('type_value','task_type')->column('name','value'); return !empty($data['rtype']) ? $dict[$data['rtype']] : ''; } public function getZTypeTextAttr($value,$data) { $dict = DictData::where('type_value','major_type')->column('name','value'); return !empty($data['zType']) ? $dict[$data['zType']] : ''; } public function getExamineTextAttr($value,$data) { $dict = DictData::where('type_value','review_process')->column('name','value'); return !empty($data['examine']) ? $dict[$data['examine']] : ''; } public function getTypeTextAttr($value,$data) { $dict = DictData::where('type_value','building_structure_type')->column('name','value'); return !empty($data['type']) ? $dict[$data['type']] : ''; } public function getAskTextAttr($value,$data) { $dict = DictData::where('type_value','preparation_requirements')->column('name','value'); return !empty($data['ask']) ? $dict[$data['ask']] : ''; } public function getAccordingTextAttr($value,$data) { $dict = DictData::where('type_value','cost_sentence')->column('name','value'); return !empty($data['according']) ? $dict[$data['according']] : ''; } public function getClbcTextAttr($value,$data) { $dict = DictData::where('type_value','material_compensation')->column('name','value'); return !empty($data['clbc']) ? $dict[$data['clbc']] : ''; } }