如何解决Laravel 7:尝试获取名称而不是ID
我正在尝试根据其关系获取客户名称,地址等。但是当我尝试获取示例名称时,出现错误,试图获取非对象的“名称”属性
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Client;
class Evaluation extends Model
{
protected $table = 'evaluations';
protected $fillable = [
'expert',];
public function client() {
return $this->belongsTo(Client::class);
}
}
控制器
public function index()
{
$evaluations = Evaluation::with('client')->get();
$users= auth()->user();
return view('evaluation.index',['evaluations' => $evaluations]);
}
视图
@if (count($evaluations) < 1)
<h1>Nici o evaluare nu a fost gasita.</h1>
@else
@foreach ($evaluations as $evaluation)
<tr>
<td class="pl-1">{{$evaluation->id}}</td>
<td class="pl-1">{{$evaluation->expert}}</td>
<td class="pl-1">{{$evaluation->gram1}}</td>
<td class="pl-1">{{$evaluation->client_id}}</td>
@php
dd($evaluation->client_id->nume)
@endphp
<td> <a href="{{ url('evaluation/print/'. $evaluation->id) }}">Printeaza</a></td>
</tr>
@endforeach
@endif
我还必须提到,在我的表中是nume而不是名称,这不是英语项目。
解决方法
解决了,关系,一切都很好,我所要做的就是创建一个隐藏输入以获取id的输入,并将id添加到受保护的$ fillable上的客户端模型上,而不是评估模型上。它是可行的,并且在视图中您必须像{{$ evaluation-> client-> nume}}那样调用它,“-> client->” =是您调用的关系。我甚至解决了外键问题,在我的create_evaluations_table中,client_id列是bigInteger,在我的create_clients_table中,我想要关联的客户端ID是整数。如果将出现此错误,您需要做的就是使它们相同,就像要关联的表中的id是整数一样,您还需要在其中保存整数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。