【问题标题】:Message: Trying to get property of non-object mvc framework Codeigniter消息:试图获取非对象 mvc 框架 Codeigniter 的属性
【发布时间】:2018-02-27 13:36:38
【问题描述】:

我正在尝试回显/获取表中的值,但我有 消息:尝试获取非对象的属性

喜欢这个

  <tr class="project-overview-customer">
                <td class="bold"><?php echo _l('dev_oqood_status'); ?></td>
                <td><?php echo $developer->dev_oqood_status; ?></td>
            </tr>
            <tr class="project-overview-customer">
                <td class="bold"><?php echo _l('dev_contact'); ?></td>
                <td><?php echo $developer->dev_contact; ?></td>
            </tr>

在我的模型上我有这个

public function get_developer($id = '', $where = array())
    {
       $this->db->where($where);
       if (is_numeric($id)) {
        $this->db->where('project_id', $id);
            $developer = $this->db->get('tbldevdetails')->row();
            print_r($developer); die();
        }

            return $this->db->get('tbldevdetails')->result_array();


    }

然后当我做print_r($project); die();

stdClass Object ( [dev_id] => 20 [project_id] => 49 [dev_devloper] => [dev_purchase_date] => 2018-02-27 [dev_handover_date] => 2018-02-27 [dev_oqood_status] => Mengaw [dev_contact] => 0 [dev_email] => Mengaw [dev_landline] => Mengaw [dev_mobile] => Mengaw )

为什么会出现这个错误?谁能指导我?

【问题讨论】:

    标签: php sql codeigniter


    【解决方案1】:

    $this-&gt;db-&gt;get('tbldevdetails')-&gt;row();(这是您正在运行的 print_r() 返回一个对象。您正在使用 &lt;?php echo $developer-&gt;dev_oqood_status; ?&gt; 正确访问它。但是...
    您没有返回 $this-&gt;db-&gt;get('tbldevdetails')-&gt;row(); 您正在返回 $this-&gt;db-&gt;get('tbldevdetails')-&gt;result_array();.. 这是一个数组,您可以像 $developer[0]['dev_oqood_status'] 一样访问它

    因此,请将您的函数 get_developer 改为 return $developer;

    从codeigniter框架也知道Result RowsResult Arrays的区别

    【讨论】:

    • 嗨,感谢您的解释,但首先我尝试使用 $developer['dev_oqood_status'] 进行调用,但它给了我一个未定义的索引和 for 和 $developer[0] 它给了我数组到字符串转换错误
    • @Mengaw 请让我看看你的模型调用的var_dump($developer)
    • 这里是结果对象(stdClass)#58 (10) { ["dev_id"]=> string(2) "20" ["project_id"]=> string(2) "49" [ "dev_devloper"]=> string(0) "" ["dev_purchase_date"]=> string(10) "2018-02-27" ["dev_handover_date"]=> string(10) "2018-02-27" [" dev_oqood_status"]=> string(7) "Mengaw" ["dev_contact"]=> string(1) "0" ["dev_email"]=> string(7) "Mengaw" ["dev_landline"]=> string(7 ) "Mengaw" ["dev_mobile"]=> 字符串(7) "Mengaw" }
    • @Mengaw 是返回 -&gt;row()-&gt;result_array() 因为它看起来像一个对象而不是数组。
    • 它与-&gt;row()
    【解决方案2】:

    您正在使用-&gt;result_array() 来获取$developer,因此$developer 不是一个对象,而是一个数组。您应该使用 -&gt;result() 返回一个对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2016-07-20
      相关资源
      最近更新 更多