getTable(); } public function company() { return $this->belongsTo(Company::class, 'company_id'); } public function subsites() { return $this->hasMany(SubsiteJob::class, 'jobs_id'); } public function promotion() { return $this->hasMany(Promotion::class, 'jobid'); } public function jobsContact() { return $this->hasOne(JobsContact::class, 'job_id'); } public function contact() { return $this->hasOne(JobsContact::class, 'job_id'); } public static function jobsUpdate($ids, $data) { return Jobs::whereIn('id', $ids)->update($data); } public function getTagAttribute($value) { return explode(',', $value); } public function setTagAttribute($value) { if ($value) { $this->attributes['tag'] = implode(',', $value); } else { return ''; } } public function getAgeAttribute($value) { return explode('-', $value); } public function setAgeAttribute($value) { if ($value) { $this->attributes['age'] = implode('-', $value); } } public function viewJobs() { return $this->hasMany(ViewJob::class, 'job_id', 'id'); } public function personFavorite() { return $this->hasMany(PersonFavorite::class, 'job_id', 'id'); } public function categoryTrade() { return $this->belongsTo(Category::class, 'trade'); } public function categoryScale() { return $this->belongsTo(Category::class, 'scale'); } public function categoryEducation() { return $this->belongsTo(Category::class, 'education'); } public function categoryWage() { return $this->belongsTo(Category::class, 'wage'); } public function queueAutoRefreshs() { return $this->hasMany(QueueAutoRefresh::class, 'pid')->where('utype', 1); } public function companyInterviews() { return $this->hasMany(CompanyInterView::class, 'jobs_id'); } public function personalJobsApply() { return $this->hasMany(PersonalJobsApply::class, 'jobs_id', 'id'); } public function categoryJobsTopClass() { return $this->hasOne(CategoryJobs::class, 'id', 'topclass'); } public function categoryJobsCategory() { return $this->hasOne(CategoryJobs::class, 'id', 'category'); } public function categoryJobsSubClass() { return $this->hasOne(CategoryJobs::class, 'id', 'subclass'); } public function subsiteJobs() { return $this->hasMany(SubsiteJob::class, 'jobs_id', 'id'); } public function companyConsultant() { return $this->belongsTo(CompanyConsultant::class,'company_id', 'company_id'); } public function toSearchableArray() { $arr = $this ->load(['company','subsiteJobs'])->toArray(); $arr['age_min']=empty($arr['age'][0])?16:intval($arr['age'][0]); $arr['age_max']=empty($arr['age'][1])?99:intval($arr['age'][1]); $arr['sex_cn'] = $arr['sex'] == 1?"男":"女"; $arr['district'] = string_to_array('.', $arr['district']); foreach ($arr['district'] as $key => $val) { $arr['district_cn'][$key] = get_district_cn($val); } $arr['trade'] = $arr['company']['trade']; $arr['wage_cn'] =get_category($arr['wage']); $arr['wage_min'] =$arr['wage_min']; $arr['wage_max'] =$arr['wage_max']; $arr['trade_cn'] = get_category($arr['trade']); foreach ($arr['tag'] as $key => $val) { $arr['tag'][$key] = (int)$val; } foreach ($arr['tag'] as $key => $val) { $arr['tag_cn'][$key] =get_category($val); } $arr['scale_cn'] = get_category($arr['scale']); $arr['nature_cn'] = get_category($arr['nature']); $arr['education_cn'] = get_category($arr['education']); $arr['experience_cn'] = get_category($arr['experience']); $arr['intention_jobs_id'] = [$arr['topclass'],$arr['category'],$arr['subclass']]; $arr['intention_jobs'] = [get_job_category($arr['topclass']),get_job_category($arr['category']),get_job_category($arr['subclass'])]; $arr['location'] = [ 'lat'=>is_numeric($arr['map_y'])?$arr['map_y']:0, 'lon'=>is_numeric($arr['map_x'])?$arr['map_x']:0 ]; $arr['company']['nature_cn'] = get_category($arr['company']['nature']); $arr['company']['trade_cn'] = get_category($arr['company']['trade']); $arr['company']['scale_cn'] = get_category($arr['company']['scale']); $arr['company']['district'] = string_to_array('.', $arr['company']['district']); $arr['company']['district_cn'] = string_to_array('/', $arr['company']['district_cn']); foreach ($arr['company']['tag'] as $key => $val) { $arr['company']['tag'][$key] = (int)$val; } foreach ($arr['company']['tag'] as $key => $val) { $arr['company']['tag_cn'][$key] =get_category($val); } $arr['company']['location'] = [ 'lat'=>is_numeric($arr['company']['map_y'])?$arr['company']['map_y']:0, 'lon'=>is_numeric($arr['company']['map_x'])?$arr['company']['map_x']:0 ]; $arr['company']['subsite_ids'] = [$arr['subsite_id']]; $arr['subsite_ids'] = array_column($arr['subsite_jobs'], 'subsite_id'); unset($arr['map_x']); unset($arr['map_y']); unset($arr['company']['password']); unset($arr['company']['remember_token']); unset($arr['company']['map_x']); unset($arr['company']['map_y']); unset($arr['company']['map_zoom']); unset($arr['company']['map_open']); return $arr; } }