-2

我有一个视图文件update.php并包含以下代码:

php foreach ($record as $my_records)

$val1=$my_records['name'];

$val2=$my_records['faculty'];

$val3=$my_records['level'];

$val4=$my_records['year'];

?>

php endforeach 

我有一个带有函数的控制器update,这个控制器从模型中获取记录,如下所示:

$data['record']=$this->myproject_model->get_all_values($rollno); 

然后将这些记录传递给视图,如下所示

$this->load->view('iproject/update',$data);

但是,我需要将自己的值从控制器发送到视图。也就是说,在某些情况下,我需要清除从模型中获得的数据并将我自己的值发送到视图。那么,如何将我自己的数据放入数组中并以与上述代码$data['record']相同的方式在视图中获取这些数据?update.php

4

4 回答 4

0

$data['record']从模型中获取控制器后,您始终可以在控制器中进行修改。

但是 MVC 方式是从模型本身发送正确的数据。

于 2012-12-07T06:11:58.820 回答
0

您可以像这样发送静态数据:

$data = array(
     'x' =>'hello',
     'y' =>'how are',
    );

您可以将此$data数组发送到视图,就像您$data之前发送的方式一样,您可以访问它。

于 2012-12-07T06:13:13.957 回答
0
$records = $this->myproject_model->get_all_values($rollno);

$reults = $this->prepare_records($records); // Below.

$data['results'] = $results;
$this->load->view('iproject/update', $data);

并且您需要使用逻辑编写的函数(最简单但不是最好的放置函数的位置是在控制器中。):

private function prepare_records($records)
{
  $results = array();
  // Fill up $results
  return $results;
}

一个更好的策略是将函数放在 myproject_model 中,以保持控制器的清洁和围绕模型中数据的逻辑。

您将替换:

$reults = $this->prepare_records($records);

$reults = $this->myproject_model->prepare_records($records);

并将功能移动到模型中。如果它在您的模型中,您需要将声明更改为 public(这很酷,因为现在您可以从任何您想要的控制器调用它)。

public function prepare_records($records) { }
于 2012-12-07T06:13:31.100 回答
0

在这种情况下,我会在你的 foreach 循环中使用一个指针。然后您可以检查该条目是否需要修改,然后进行更改。

在下面的示例中,我检查用户是否在他们的第四年/最后一年 - 如果是,我们在他们的教师姓名之前添加“Final Year Student -”。与其创建一个新数组并在那里填充,这是一种更智能的代码正确准备结果以供显示的方式。

foreach($records as &$record){
    if($record['year'] == '4'){
        $record['faculty'] = 'Final Year Student - ' . $record['faculty'];
    }
}

现在,一旦循环完成, $records 将包含修改后的条目。

于 2013-03-08T15:22:46.117 回答