【问题标题】:ErrorException (E_ERROR) Trying to get property 'id' of non-object (View: - laravel 5.5ErrorException (E_ERROR) 试图获取非对象的属性“id”(查看:-laravel 5.5
【发布时间】:2018-06-12 18:09:26
【问题描述】:

我试图从显示的数据列表中打开我的编辑表单,但出现上述错误。这是我的控制器来显示页面:

public function edit($id)
{
    $assets = Asset::all();
    $tenants = Tenant::all();
    $tenantProperty = TenantProperty::find($id);
    return view('agent/edit_tenantProperty', compact('tenantProperty', 'assets', 'tenants'));
}

我的看法

<form method="post" action="{{ url('agent/edit_tenantProperty/'. $tenantProperty->id) }}" data-toggle="validator">
                {{ csrf_field() }}
                {{ method_field('PATCH') }}

路线是这样的

Route::get('edit_tenantProperty/{id}', [ 'as' => 'agent/edit_tenantProperty', 'uses' => 'TenantPropertyController@edit']);

请帮助我,我该如何解决这个问题。提前致谢

【问题讨论】:

  • tenantProperty 传递给视图时为空。您应该在压缩它并将其发送以进行渲染之前验证它的内容
  • 如何验证内容?
  • 在移动到视图之前添加 if 条件 if($tenantProperty){ // 加载视图} else { echo 'No record';}
  • 刚查了一下,确实不是空的

标签: php mysql laravel


【解决方案1】:

您必须检查控制器中是否存在$tenantProperty,如果不存在则发送未找到响应。

public function edit($id)
{
    $assets = Asset::all();
    $tenants = Tenant::all();
    $tenantProperty = TenantProperty::find($id);

    if (empty($tenantProperty)) { 
        // returny tenantProperty not fount response
    }

    return view('agent/edit_tenantProperty', compact('tenantProperty', 'assets', 'tenants'));
}

或检查$tenantProperty是否存在于视图中

@if ($tenantProperty)
   <form method="post" action="{{ url('agent/edit_tenantProperty/'. $tenantProperty->id) }}" data-toggle="validator">
      {{ csrf_field() }}
      {{ method_field('PATCH') }}
@endif

【讨论】:

  • 真的不存在,我该如何解决这个问题。 cos 表有一个 id 和要显示的数据
  • 对不起,我不明白你是什么意思??
  • TenantProperty::find($id);返回 TenantProperty 的实例或 null。您可以使用 is_null($tenantProperty)empty($tenantProperty) 检查此方法是否返回 true,这意味着表中没有 'id' 等于 $ 的记录id值
  • 什么可能导致 $tenantProperty 为空
  • 例如你 $id =1 但在tenantProperty 表中没有id =1 的记录。在这种情况下,$tenantProperty 将为空
猜你喜欢
  • 2019-08-24
  • 2019-11-16
  • 2018-02-10
  • 2018-07-03
  • 2019-03-10
  • 2017-08-02
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多