【发布时间】:2021-01-12 14:49:02
【问题描述】:
我正在尝试根据他们的关系获取客户名称、地址等,但是当我尝试获取示例名称时,我收到错误 Trying to get property of 'name' of a non-object .
<?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 而不是 name 它不是英文项目。
【问题讨论】:
-
在您的刀片评论中或删除
dd($evaluation->client_id->nume)并更改为{{$evaluation->client->nume}} -
Client表是否有对应于Evaluation表的client_id的字段id? -
我认为,如果您的外键中的
evaluation_id,您只需要提及外键return $this->belongsTo(Client::class, evaluation_id);,但可能您有不同的。所以你需要提到 -
我在我的 create_evaluations_table 中创建了一列“$table->integer('client_id);”因为我尝试过这种“ $table->bigInteger('client_id')->unsigned()->index; $table->foreign('client_id') ->references('id') ->on(' clients') ->onDelete('cascade'); 但它给我一个错误“150 外键约束的格式不正确
-
Encang Cutbray 这与它无关,我只是把它扔出去看看它会返回给我什么
标签: php laravel model controller relationship