我们如何将数据从控制器发送到视图以及我们如何检测函数中的错误

时间:2015-12-01 04:45:44

标签: php codeigniter

我们如何将数据从控制器发送到视图以及我们如何检测函数中的错误。

public function ratings() { 

    $results['value']= $this->Home_registeration->get_ratings($_POST);

    $this->load->view ('display_search_result', $results); 

    Echo "";

    print_R ($results)
}

3 个答案:

答案 0 :(得分:0)

我提供了一个示例代码,如何将数据从控制器发送到视图: 您必须在控制器函数

中编写以下代码
$data['title']='ABC';
$data['page']='home';
$this->load->view('home',$data);

现在在主视图文件中编写以下代码:

echo "The title is => ".$title;  //The title is => ABC
echo "The page is => ".$page;    //The page is => home

在你的情况下,只需打开视图文件即(display_search_result.php)并写下:

print_r($value);

答案 1 :(得分:0)

首先,您不应在codeigniter中使用$_POST,而是使用$this->input->post()库。您可以通过在视图中传递第二个参数并循环遍历数组值或使用类变量来将数据发布到视图:

<?php
$data = [
    "id" => 234,
    "name" => "John Smith",
    "status" => 2
];

$this->data->id = 234;
$this->data->name = "John Smith";
$this->data->status = 2;

?>

(a)然后打电话给你的观点:

<?php

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

?>

(b)或:

<?php

    $this->load->view('viewname');

?>

(a)然后在你的视图文件中:

<p><?= $id ?></p>
<p><?= $name ?></p>
<p><?= $status ?></p>

(b)OR,如果您使用$this->data->id

<p><?= $this->data->id ?></p>
<p><?= $this->data->name ?></p>
<p><?= $this->data->status ?></p>

希望它有所帮助。

答案 2 :(得分:0)

在调用函数进行处理之前,您需要检查所有需求和所有可能的失败。

示例:

public function ratings() { 
    $parameter = $this->input->post(null, TRUE); // null to get all index and TRUE to xss clean
    $results = array();
    if (empty($parameter))
    {
        $results['value'] = "Please input your parameter first";
    }
    else
    {
        // Asume parameter exist and safe enough to be proccess
        $results['value']= $this->Home_registeration->get_ratings($parameter);
        // you can also check result from get_ratings function
        // asume you will set rating 0 on empty return value from function
        if (empty($results['value'])) $results['value'] = 0;
    }


    $this->load->view ('display_search_result', $results); 

    echo "<pre>";
    print_r ($results);        
    echo "</pre>";

}