我正在尝试根据ID显示一条记录。我收到此错误:
试图获取非对象的属性
显示来自ClientsController的功能:
public function show( Clients $clients)
{
$clients = Clients::find($clients->id);
return view('clients.show', ['clients' => $clients]);
}
单个show.blade视图文件
@extends('layouts.app')
@section('content')
<h1>{{ $clients->name }}</h1>
@endsection
客户模型:
class Clients extends Model
{
//
protected $fillable = [
'name', 'type', 'user_id', 'sales_id', 'regions_id'
];
public function user(){
return $this->belongsTo('App\User');
}
public function region(){
return $this->belongsTo('App\Regions');
}
public function sales(){
return $this->belongsTo('App\Sales');
}
}
答案 0 :(得分:0)
未找到您要查找的客户端ID的客户端。看来route/model binding可能配置不正确,或者您是not receiving the proper id from the request。
如果路由/模型绑定正常工作,并且找到了传入的ID,则您不必进行find()
调用。
$clients = Clients::find($clients->id);
刀片服务器模板中的错误是因为您试图访问null值/非对象值上的属性。
$clients->name
如果对象不存在,则可以使用空合并运算符来处理这种情况:
$clients->name ?? "No Name"
答案 1 :(得分:0)
您应该使用类型提示变量名称的单数来更正模型绑定,即:
public function show( Clients $client)
{
return view('clients.show', ['clients' => $client]);
}