尝试获取非对象的属性-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;