1

我目前在我正在构建的网络应用程序上有一个功能,求职者可以在其中查看他们申请的工作,非常简单。

当他们“申请”时,该应用程序存储在数据库表“应用程序”中,并带有一个“job_id”列,该列存储来自“jobs”数据库表的作业的“id”。

目前,我可以提取上述求职者所做的每份申请。

虽然,我无法遍历每个应用程序并找到与该应用程序对应的作业,然后将 row_array() 添加到更大的数组中,然后我将使用 foreach 循环输出作业。

本质上我是在问如何将数组添加到数组中,然后输出完整的数组?

申请的.php(控制器)

$applications_query = $this->db->get_where(
    'applications', array('jobseeker_profile_id' => $user['id'])
);
$applications = $applications_query->result_array();

$data[] = array();

foreach ($applications as $application) {
    $job_id = $application['job_id'];
    $data['job'] = $this->db->get_where('jobs', array('id' => $job_id))->row_array();
    $data['jobs'] .= $data['job'];
}

$data['jobs'];

$this->load->view('header');
$this->load->view('appliedfor', $data); 

申请的.php (查看)

foreach ($jobs as $job) {
    $single_job_id = $job['id'];

    echo "<br>";
    echo form_open('job/view' . '" id="eachJob');

    echo "<div id=\"leftContain\" class=\"floatLeft\">";
    echo "<h4 class=\"green\">" . $job['role'] . "</h4>";
    echo "<div class=\"italic\"><div class=\"blue floatLeft\">" . $job['company']
        . " &nbsp; </div><div class=\"floatLeft\">in</div><div class=\"blue floatLeft\"> &nbsp; "
        . $job['location'] . "</div></div><br><br>";
    echo "</div>";

    echo "<div id=\"rightContain\" class=\"floatLeft\">";
    echo "<input type=\"hidden\" name=\"job_id\" value=\"" . $single_job_id . "\">";
    echo form_submit('submit' . '" class="jobButton floatRight"', 'View Job');
    echo "</div>";

    echo form_close();
}

我目前收到 2 个错误:未定义的索引:作业,并且该错误显然$data['jobs']在 foreach 内的控制器中。

另一个错误是视图文件中的 foreach,但这基本上是由第一个错误触发的。

谢谢你的帮助。

4

2 回答 2

1

你是对的:

$data['jobs'] .= $data['job'];

连接字符串,而不是数组,并且永远不会工作。

相反,请尝试以下操作:

$data['jobs'][] = $data['job'];

建立一个作业数组,然后使用 foreach() 或任何最合适的输出

于 2013-09-01T05:17:28.957 回答
0

更改您的控制器代码:

$applications_query = $this->db->get_where(
    'applications', array('jobseeker_profile_id' => $user['id'])
);
$applications = $applications_query->result_array();

$data = array(); //declare and init $data, an empty array

foreach ($applications as $job_id=>$application) {
   // list jobs for job_id, you can using $job_id as array-key
    $data['job'][$job_id] = $this->db->get_where('jobs', array('id' => $job_id))->row_array(); 
}


$this->load->view('header');
$this->load->view('appliedfor', $data); 
于 2013-12-30T04:22:55.977 回答