AutorÃa | Ultima modificación | Ver Log |
<?phpdeclare(strict_types=1);namespace LeadersLinked\Helper;use Laminas\View\Helper\AbstractHelper;use Laminas\Db\Adapter\AdapterInterface;use LeadersLinked\Mapper\QueryMapper;use LeadersLinked\Mapper\JobMapper;use LeadersLinked\Mapper\LocationMapper;class JobSuggestionHelper extends AbstractHelper{/**** @var AdapterInterface*/private $adapter;/**** @param AdapterInterface $adapter*/public function __construct($adapter){$this->adapter = $adapter;}public function invoke($job_id){$items = [];$jobMapper = JobMapper::getInstance($this->adapter);$job = $jobMapper->fetchOne($job_id);if($job) {$location = null;if($job->location_id) {$locationMapper = LocationMapper::getInstance($this->adapter);$location = $locationMapper->fetchOne($job->location_id);}$queryMapper = QueryMapper::getInstance($this->adapter);$select = $queryMapper->getSql()->select();$select->columns(['id', 'title', 'job_category_id', 'employment_type', 'last_date_of_application']);$select->from(['t' => JobMapper::_TABLE]);$select->join(['l' => LocationMapper::_TABLE], 'j.location_id = l.id', ['state', 'country']);$select->where->lessThan('last_date_of_application', date('Y-m-d'));$select->where->equalTo('job_category_id', $job->job_category_id);$select->where->equalTo('employment_type', $job->employment_type);$select->where->equalTo('state', $location ? $location->state : '');$select->where->equalTo('country', $location ? $location->country : '');$select->limit(20);$select->order(['last_date_of_application', 'title']);$items = $queryMapper->fetchAll($select);}return $this->getView()->render('helpers/job-suggestions.phtml', ['items' => $items]);}}