Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试获取非对象的属性-laravel 5.4_Laravel_Eloquent_Relationship - Fatal编程技术网

尝试获取非对象的属性-laravel 5.4

尝试获取非对象的属性-laravel 5.4,laravel,eloquent,relationship,Laravel,Eloquent,Relationship,我使用的是拉威尔雄辩的关系,当我使用 {{$subject->cat}} 我收到一个json响应,如下所示 {"id":13,"name":"Fsc","created_at":"2017-10-23 00:00:00","updated_at":"2017-10-23 00:00:00"} 因为这里有第二个对象“name”,所以我尝试了 {{$subject->cat->name}} 但是有错误 Trying to get propert

我使用的是拉威尔雄辩的关系,当我使用

    {{$subject->cat}}
我收到一个json响应,如下所示

    {"id":13,"name":"Fsc","created_at":"2017-10-23 00:00:00","updated_at":"2017-10-23 00:00:00"}
因为这里有第二个对象“name”,所以我尝试了

    {{$subject->cat->name}}
但是有错误

    Trying to get property of non-object 
虽然我对其他表使用了相同的方法,并在这里复制了相同的方法,但得到了错误

查看我的刀片文件代码,我正在foreach循环中调用对象

      @foreach ($subjects as $subject)
                    <tr>
                      <td width="8%">{{$subject->id}}</td>
                      <td width="22%">{{$subject->subject}} </td>
                      <td width="22%">{{$subject->cat->name}}</td>
                        <!-- <a class="btn btn-success btn-sm" href="{{route('subjects.show', $subject->id)}}"><i class="fa fa-eye"></i></a> |  -->
                        <a href="{{route('subjects.edit', $subject->id)}}" class="btn btn-warning btn-sm"><i class="fa fa-pencil"></i></a> |
                          {!! Form::open(['route' => ['subjects.destroy', $subject->id], 'method' => 'DELETE', 'class' => 'delete-form']) !!}
                          {{ Form::button('<i class="fa fa-times" aria-hidden="true"></i>', ['class' => 'btn btn-danger btn-sm pull-left', 'type' => 'submit']) }}
                          {!! Form::close() !!}
                      </td>
                    </tr>
                    @endforeach 
@foreach($subject作为$subject)
{{$subject->id}
{{$subject->subject}
{{$subject->cat->name}
|
{!!Form::open(['route'=>['subjects.destroy',$subject->id],'method'=>'DELETE','class'=>'DELETE Form'])
{Form::button('',['class'=>'btn btn danger btn sm pull left','type'=>'submit'])}}
{!!Form::close()!!}
@endforeach
首次使用 获取JSON编码的字符串并将其转换为PHP变量

然后


只需使用
json\u解码
如下:

$var = json_decode($subject, true);
然后您可以使用:

{{$subject->cat->name}}
看更多

希望这对你有帮助

试试这个

$cat=json_解码($subject->cat);//返回对象
{{$cat['name']}}

$cat=json_解码($subject->cat,true);//返回数组

{{$cat['name']}

您需要解码json,然后像这样使用:

$result = json_decode ($subject->cat);
echo $result->name;
使用变量名代替
$result


对于洞察,这里是

惊人的,这是因为我对其他关系使用了与拉拉维尔相同的方法,允许这种魔力$主题位于foreach循环之后。你能帮我使用laravel方法吗?
json\u decode
是你唯一需要使用的!现在试试,我更新了我的答案!抱歉,没有成功
json\u decode
转换为PHP变量!你是如何尝试的?你也可以这样做:
dd(json_解码($subject->cat,true))这将为您提供
{“id”:13,“name”:“Fsc”,“created_at”:“2017-10-23 00:00:00”,“updated_at”:“2017-10-23 00:00:00”}
我正在寻找laravel雄辩的方法laravel blade文件不接受此变量我已尝试此解决方案,但得到错误未定义的变量:result(视图:E:\xampp\htdocs\laravel\lea\resources\views\admin\subjects\index.blade.php)使用传递给blade的变量更改结果变量:)我从您和以上所有示例中得到了答案,但问题是我以前没有json解码就得到了结果,为什么现在出现在这里:(我采用这种方法第一个方法得到错误。(1/1)FatalErrorException调用一个成员函数toArray(),第二个方法为null,得到错误,如我的问题标题。但最后一个方法有效。但作为我的阅读资料,我们可以在没有json的情况下得到结果,我使用的是这种方法
$result = json_decode ($subject->cat);
echo $result->name;