Php 如何解决消息:尝试获取Codeigniter中非对象错误的属性?
我在CodeIgniter和练习方面非常新鲜。我现在正在开发一个简单的Codeigniter应用程序,只是为了练习。我在数据库中找到了银行及其分支机构。我只想让分行看看它的银行名称。分支正在显示,但在获取银行时控制器中显示此错误。我试了这么多,但没有找到有效的Php 如何解决消息:尝试获取Codeigniter中非对象错误的属性?,php,mysql,codeigniter,activerecord,codeigniter-3,Php,Mysql,Codeigniter,Activerecord,Codeigniter 3,我在CodeIgniter和练习方面非常新鲜。我现在正在开发一个简单的Codeigniter应用程序,只是为了练习。我在数据库中找到了银行及其分支机构。我只想让分行看看它的银行名称。分支正在显示,但在获取银行时控制器中显示此错误。我试了这么多,但没有找到有效的 "A PHP Error was encountered Severity: Notice Message: Trying to get property of non-object" in Line Number: 85 and
"A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object"
in Line Number: 85 and 91
这是我的控制器
function ShowBranchList() {
$branch_list = $this->FD_Model->get_all_branches();
$get_bank = $this->FD_Model->get_bank_by_branch($branch_list->bankid); //This is Line Number 85
if($branch_list ){
$data = array(
'pagetitle' => 'Branch List View',
'branch_list_data' => $branch_list,
'br_bank' => $get_bank['bank_name'],//This is Line Number 93
);
}
型号
/*function for getting all branches*/
function get_all_branches() {
$this->db->order_by( $this->brid, $this->order );
return $this->db->get( $this->brtable )->result();
}
/*function for getting banks by branches*/
function get_bank_by_branch( $id ) {
$this->db->where( $this->bid, $id);
return $this->db->get( $this->banktable )->row();
}
最后,这是我的观点
foreach ($branch_list_data as $branch_list)
{
<?php echo $branch_list->brname ?>
<?php echo $br_bank; ?>
}
结果
从tbl_bankmaster
中选择*其中bid
为空
值
$branch\u list->bankid
为null
。当我对某些值进行硬编码时,视图页面显示时不会出现任何错误。像这样更改视图中的数据
foreach ($branch_list_data as $branch_list)
{
echo $branch_list['brname']; //change your data like this
echo $br_bank;
}
$get_bank = $this->FD_Model->get_bank_by_branch($branch_list[0]->bankid);
按分行获取银行($branch\u list->bankid)代码>此方法仅返回对象。
$get\u bank
这个变量是由数组访问的,但它是一个对象。这样做吗
foreach ($branch_list_data as $branch_list)
{
echo $branch_list['brname']; //change your data like this
echo $br_bank;
}
$get_bank = $this->FD_Model->get_bank_by_branch($branch_list[0]->bankid);
和
'br_bank' => $get_bank[0]->bank_name # this will work maybe
或
它的0
索引数组,因此您需要添加密钥来访问孩子的
我终于在他的回答的帮助下实现了。我只是在数组中传递值,如下所示
'br_bank' => $get_bank->bank_name
现在视图开始工作。行号??post complete Error阅读我已经添加了这行。请检查我更新的问题。@SudhiSr检查我的答案谢谢你的回答。但我在获得分支时没有问题。我从树枝上取布兰克时出错。这里,$get\u bank=$this->FD\u Model->get\u bank\u by\u branch($branch\u list->bankid)代码>在$get\u bank=$this->FD\u Model->get\u bank\u by\u branch($branch\u list->bankid)中有错误代码>。我认为$branch\u list->bankid
为空。这才是真正的问题。当我尝试硬编码bankid值时,查看页面运行良好。@SudhiSr使用此$branch\u list[0]->bankid
仔细检查模型中的返回类型是否有任何更改?请保持原样并更改我提到的控制器代码。我认为您的方法正确。现在查询返回值,但'br\u bank'=>$get\u bank[0]->bank\u name
中有错误。该错误是致命错误:无法将stdClass类型的对象用作此行中的数组'br\u bank'=>$get\u bank[0]->bank\u name
我也尝试了'br\u bank'=>$get\u bank[0]['bank\u name']
。错误是一样的。