不能在pcategories.php中使用stdClass类型的对象作为数组

时间:2016-10-14 06:34:07

标签: codeigniter

如何修复此错误消息?

你能帮忙吗?

致命错误:无法在第56行的C:\ Program Files \ EasyPHP-Devserver-16.1 \ eds-www \ companygiondaci \ application \ views \ pcategories.php中使用stdClass类型的对象作为数组

致命错误:无法在第56行的C:\ Program Files \ EasyPHP-Devserver-16.1 \ eds-www \ companygiondaci \ application \ views \ pcategories.php中使用stdClass类型的对象作为数组

遇到PHP错误 严重性:错误 消息:不能使用stdClass类型的对象作为数组 文件名:views / pcategories.php

视图/ pcategories.php



<div class="row-fluid">
                <div class="span12">
                    
                    <button type="button" class="add" onclick="location.href='<?php echo site_url('cpages/addparentctg'); ?>';">ADD PARENT CATEGORIES</button> 
                    
                    <div class="widget-box">
                        <div class="widget-title"><h5>Parent Categories</h5></div>
                        <div class="widget-content">
                        
                        <table border="0" style="width: 100%; height: 90px;">
                            <tr>
                                <td>PARENT NAME</td>
                                <td>DESCRIPTION</td>
                                <td>EDIT</td>
                                <td>DELETE</td>    
                            </td>
                            
                            <?php foreach ($posts as $post): ?>
                            
                            <tr>
                                <td><?php echo $post['ctgparent_name']; ?></td>
                                <td><?php echo $post['ctgparent_description']; ?></td>
                                <td><button type="button" class="edit" onclick="location.href='<?php echo site_url('cpages/editparentctg/'.$post->ctgp_no); ?>';">EDIT</button></td>
                                <td><button type="button" class="delete" onclick="location.href='<?php echo site_url('cpages/editparentctg/'.$post->ctgp_no); ?>';">DELETE</button></td>    
                            </td>    
                                                                                    
                            <?php endforeach; ?>    
                            
                        </table>            
                        </div>
                    </div>                    
                </div>
            </div> 
&#13;
&#13;
&#13;

控制器/ Cpages.php

&#13;
&#13;
public function pcategories() { 
    
            
        $data['posts'] = $this->Mpages->call_parentctg();

        //$data['ctgparent_name'] = $this->Mpages->call_parentctg();
        //$data['ctgparent_description'] = "Second";//$this->Mpages->retrieve_parentctg();
        
        $this->load->view('pcategories', $data); 
        
    } 
&#13;
&#13;
&#13;

&#13;
&#13;
models/Mpages.php

<!-- begin snippet: js hide: false console: true babel: false -->
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

CodeIgniter将结果行作为对象返回,而不是数组。 所以你需要使用 - &gt;访问它。喜欢而不是$ post ['ctgparent_name'];使用$ post-&gt; ctgparent_name。

答案 1 :(得分:0)

如果您尝试使用$object['property']表示法访问对象的属性而不必使用$object->property,则会发生这种情况。在您的情况下,您正在执行$post['ctgparent_name']和{{1你可以分别将它们改为echo $post['ctgparent_description']$post->ctgparent_name

如果您使用codeigniter活动记录从数据库中获取数据(我怀疑您这样做),还有另一种解决方案。如果您使用的是$post->ctgparent_description方法,则会为您提供一个对象。您可以使用$query->result()代替,现在您可以使用$query->result_array()符号显示一系列结果。

此外,如果您使用的是$array['whatever']PDO,则可以使用方法将数据库结果集作为数组。请参阅官方文档PDO result arrayMysql result arrayMysql associative array