如何解决消息:尝试在Codeigniter中获取非对象错误的属性?

时间:2018-03-14 06:20:50

标签: php mysql codeigniter activerecord codeigniter-3

我在CodeIgniter和练习中非常新鲜。我现在正在开发一个简单的Codeigniter应用程序,仅用于练习。我在数据库中拥有Banks及其分支机构。我只是想用它的银行名称来显示分支机构。分支机构正在显示但在控制器中获取银行时,此错误正在显示。我在SO links中尝试了这些,但没有找到任何效果。

"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; ?>
        }

有人知道这个问题吗?

更新

当我想查看查询时

echo $this->db->last_query();

结果

  

SELECT * FROM tbl_bankmaster WHERE bid IS NULL

$branch_list->bankidnull。当我对某些值进行硬编码时,视图页面显示没有任何错误。

4 个答案:

答案 0 :(得分:1)

喜欢这个

$get_bank =   $this->FD_Model->get_bank_by_branch($branch_list[0]->bankid);

'br_bank' => $get_bank[0]->bank_name # this will work maybe

'br_bank' => $get_bank[0]['bank_name']
  

0索引数组,因此您需要添加密钥才能访问子项

答案 1 :(得分:0)

在此视图中更改您的数据

foreach ($branch_list_data as $branch_list) 
{ 
   echo $branch_list['brname']; //change your data like this
   echo $br_bank; 
}

答案 2 :(得分:0)

我终于在Abdulla Nilam的答案帮助下实现了这一目标。我刚刚传递了数组中的值,如

def autocomplete(request):
fetch_field = request.GET.get('fetch_field')
sqs = SearchQuerySet().autocomplete(
    content_auto=request.GET.get(
        'query',
        ''))[
    :5]
s = []
for result in sqs:
    d = {"value": result.title, "data": result.object.slug}
    s.append(d)
output = {'suggestions': s}
print('hihi' ,output)
return JsonResponse(output)

现在视图正常运作。

答案 3 :(得分:-1)

get_bank_by_branch($branch_list->bankid);此方法仅返回对象  一个数组。

$get_bank这个变量是你访问数组的,但它是一个对象。