我收到了这个错误:
遇到PHP错误严重性:通知消息:未定义属性:stdClass :: $ positionsNum
当我跑步时。
我的模特:
public function load_job($id){
$Where = array('jobs.id' => $id);
$this->db->select('jobs.id, positionsNum, companyName, contract_type.titleEN as contractType');
$this->db->from('jobs');
$this->db->join('contract_type', 'jobs.contractTypeId = contract_type.id', 'left');
$this->db->where($Where);
$Result = $this->db->get();
return $Result->first_row() ;
}
我的观点:
<?php if(isset($job) && count($job) > 0){ ?>
<div class="row job-detail-row">
<div class="col-lg-6 job-detail-label"><?php echo lang('contractType'); ?></div>
<div class="col-lg-6"><a href=""><?php if(isset($job->contractType)) echo $job->contractType; ?></a></div>
</div>
<div class="row job-detail-row">
<div class="col-lg-6 job-detail-label"><?php echo lang('num_vacancies'); ?> </div>
<div class="col-lg-6"><?php echo $job->positionsNum; ?></div>
</div>
<?php } ?>
我的控制器功能:
public function job() {
$job_id = $this->uri->segment(3);
if(isset($job_id) && !empty($job_id))
{
//one job
$job = $this->job_model->load_job($this->GetLang, $job_id);
$data['job'] = $job;
$this->load->view( 'front/singleJob', $data);
}
}
另外,我打印了返回的对象并返回:
stdClass Object(
[id] => 9
[positionsNum] => 2
[companyName] =>
[contractType] => type1
)
但是,contractType
即使已经有值,也不会在页面中打印。
我无法弄清楚问题所在。有什么帮助吗?
答案 0 :(得分:0)
问题出在这里。 你有一个带有一个参数的函数。
public function load_job($id);
但在控制器中你传递两个值。 尝试传递正确的值。
$job = $this->job_model->load_job($this->GetLang, $job_id);
它应该是这样的。
$job = $this->job_model->load_job( $job_id);
答案 1 :(得分:0)
试试这个
public function job() {
$job_id = $this->uri->segment(3);
if(isset($job_id) && !empty($job_id))
{
//one job
$data['job'] = $this->job_model->load_job($this->GetLang, $job_id);
$this->load->view( 'front/singleJob', $data);
}
}
答案 2 :(得分:0)
所以,它现在解决了:) 此问题在两个文件中发生两次: 首先是我的问题中陈述的内容,我在同一页面的另一个查询中出错。 第二个问题出在HTML文件中。我的完整观点是这样的:
<?php if(isset($service) && count($service) > 0){ ?>
<div class="row job-detail-row">
<div class="col-lg-6 job-detail-label"><?php echo lang('contractType'); ?></div>
<div class="col-lg-6"><a href=""><?php if(isset($service->contractType)) echo $service->contractType; ?></a></div>
</div>
<?php } ?>
<ul>
<?php foreach ($similarServices as $service) { ?> <<========= NOTICE: $service here is the same as the above condition
<li>
<div class="title"><a href="<?php echo site_url('services/service/'.$service->id) ?>"><?php echo $service->title; ?></a>
</div>
</li>
<?php }//end foreach similarServices ?>
</ul>
之所以出现是因为我使用了相同的变量名$service
,所以我改变了它,它现在有效。希望这对你有所帮助。