【问题标题】:Trying to get property of non-object when display value of json response in Laravel在Laravel中显示json响应的值时尝试获取非对象的属性
【发布时间】:2020-06-02 00:19:37
【问题描述】:

我尝试显示 json response 的值。当我在刀片视图中 dd @php dd( $user->irel__com_access_level->ID); @endphp 时它运行良好,但是当我尝试在表中显示时它返回错误,即

试图获取非对象的属性

我的代码显示在表格中

     @foreach($content as $user)
      <td>{{ $user->irel__com_access_level->ID }}</td>
     @endforeach

这是我的 json 响应 ....我想显示 irel__com_access_level 中的 ID

{
    "data": [
        {

        {
            "ID": "banana",
            "PWD": "W6ph5Mm5Pz8GgiULbPgzG37mj9g=",
            "NICK_NAME": "BANANA NANA NA",
            "PWD_INVALID_HIT": "0",
            "PWD_CREATE_DT": "2019/09/06 16:44:40",
            "INSTITUTION_ID": "C01",
            "ACL_ID": "L03",
            "LOGIN_DT": "                   ",
            "LOGIN_STS_ID": "N",
            "STS_ID": "C03",
            "TYPE_ID": "U00",
            "UPD_ID": "asmidah",
            "UPD_DT": "2019/09/06 16:44:40",
            "EMAIL_ID": "banana@gmail.com",
            "PHONE_NO_ID": "0",
            "HP_ID": "0101234567               ",
            "CRT_DATE_DELETED": "2019/09/06 16:44:40",
            "irel__com_access_level": {
                "ID": "L03",       // i want to display this
                "DESCRIPTION": "2NDLEVEL",
                "IS_CREATE": "N",
                "IS_READ": "Y",
                "IS_UPDATE": "Y",
                "IS_DELETE": "N",
                "STS_ID": "R01",
                "UPD_ID": "shukrimb",
                "UPD_DT": "2012/09/13 13:28:25"
           }

我的控制器

 private $client;

    public function __construct(){


        $this->client = new Client(['base_uri' => 'http://172.19.52.6/api/configuration/getUserIndex']);

    }

    public function index()
    {

        $response =  $this->client->get('getUserIndex');
         $content = json_decode($response->getBody());

         return view('configuration.comuserprofiles.ComUserProfilesList', ['content' => $content->data]);


我想在 json 响应中显示 irel__com_access_level 内的 ID

【问题讨论】:

  • 由于错误状态 $user 或 $irel__com_access_level 不是对象,您正在尝试获取属性。您可以使用 var_dum($user) 和 var_dump($user->irel__com_access_level) 检查变量类型
  • 是的,当我 var_dump 时它工作正常,但是当我尝试在表中显示时它返回错误尝试在显示 json 响应的值时获取非对象的属性
  • 在你的循环中试试这个@if (empty($user-&gt;irel__com_access_level)) dd($user) @endif
  • 还是一样的先生...
  • 返回什么?

标签: javascript php json laravel guzzle


【解决方案1】:

试试这个

 return view('configuration.comuserprofiles.ComUserProfilesList', ['content' => $content->data->first()]);

 return view('configuration.comuserprofiles.ComUserProfilesList', ['content' => $content->data()->first()]);

【讨论】:

  • 返回错误是调用未定义的方法stdClass::data()
  • 'content' => $content->data->first() 使用这个
【解决方案2】:

刚刚通过添加isset解决了这个答案

 <td>    @if(isset($user->irel__com_access_level))


         @if(trim($user->ACL_ID) == trim($user->irel__com_access_level->ID))
              {{ $user->irel__com_access_level->DESCRIPTION }}   
         @endif

        @endif

     </td>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 2014-11-21
    相关资源
    最近更新 更多