Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter在视图中传递对象_Php_Codeigniter_Codeigniter 2_Codeigniter 3 - Fatal编程技术网

Php Codeigniter在视图中传递对象

Php Codeigniter在视图中传递对象,php,codeigniter,codeigniter-2,codeigniter-3,Php,Codeigniter,Codeigniter 2,Codeigniter 3,我正在从控制器文件加载一个视图,该视图加载另一个视图,最后一个视图如下所示 First view Call : Controller: device.php public function device_name(){ $data = new stdClass; $data->device_name = "Apple"; $this->load->view('apple_device

我正在从控制器文件加载一个视图,该视图加载另一个视图,最后一个视图如下所示

First view Call : 

    Controller: device.php

        public function device_name(){
           $data = new stdClass;
           $data->device_name = "Apple";
           $this->load->view('apple_device',$data);
        }

Second view call :

    View: In apple_device.php

       $device_name->count = 123;
       $this->load->view('device_counts',$device_name);
我在这里使用对象而不是数组作为视图之间的传递变量。但如果我使用数组,它工作得很好

上面的代码抛出错误如下所示

Message: Attempt to assign property of non-object

任何帮助都将不胜感激。

是的,您仍然可以通过对象,但不是在“第一级”,您需要将要通过的对象包装在数组中

public function device_name(){
    $mobiles = new stdClass;
    $mobiles->device_name = "Apple";
    $data = array( "mobiles" => $mobiles );
    $this->load->view('apple_device',$data);
}
这是因为当CodeIgniter初始化视图时,它将检查第二个参数的内容。如果它是一个对象-它将通过(请参阅)将其强制转换为数组

这将依次将您的初始
$data
转换为:

$data = new stdClass;
$data->device_name = "Apple";
$example = get_object_vars( $data );
print_r( $example );

Array ( [device_name] => Apple )

因此,为了避免这种情况,请将对象嵌套在
数组()中,这样可以避免转换

您应该只以arrayNo的形式传递数据。我们还可以将对象传递到视图中。裁判:
$data = new stdClass;
$data->device_name = "Apple";
$example = get_object_vars( $data );
print_r( $example );

Array ( [device_name] => Apple )