Laravel error : Trying to get property of non-object in show.blade.php

Laravel error : Trying to get property of non-object in show.blade.php

我的代码在这里,如果你想要任何其他部分代码,我也会提供那段代码

 <div class="panel-heading ">Organization Profile</div>
  <table class="table table-striped">
    <thead>
     <tr>
      <th>Attributes</th>
      <th>Values</th>
     </tr>
    </thead>
    <tbody>
     <tr>
      <td>Org Name</td>
      <td>{{$org->name}}</td>
     </tr>
     <tr>
      <td>Owner Name</td>
      <td>{{$org->owner}}</td>
     </tr>
   </tbody>
  </table>
 </div>

Trying to get property of non-object 问题通常出现在 Laravel 时,当您返回数组但尝试在 blade 文件中使用 object 或不传递正确的 object字符串。

我从评论中注意到您在函数中传递 $orgs,而不是 $org

public function create() { 
    return view('Admin.organizations.create',compact('orgs')); 
}

更新您的 blade 文件,如下所示:

<div class="panel-heading ">Organization Profile</div>
<table class="table table-striped">
<thead>
 <tr>
  <th>Attributes</th>
  <th>Values</th>
 </tr>
</thead>
<tbody>
 <tr>
  <td>Org Name</td>
  <td>{{$orgs->name}}</td>
 </tr>
 <tr>
  <td>Owner Name</td>
  <td>{{$orgs->owner}}</td>
 </tr>

考虑到所有评论,您的控制器中可能应该有这样的东西:

public function show($id)
{
 $org = Organization::find($id);
 // $data = ['org', $id];
 return view('Admin.organizations.show')->with(compact('org'));
}

这是您的 blade 观点:

<div class="panel-heading ">Organization Profile</div>
 @if (empty($org))
    <h1>Organization is empty</h1>
 @else 
    <table class="table table-striped">
       <thead>
        <tr>
         <th>Attributes</th>
         <th>Values</th>
        </tr>
       </thead>
       <tbody>
        <tr>
         <td>Org Name</td>
         <td>{{$org->name}}</td>
        </tr>
        <tr>
         <td>Owner Name</td>
         <td>{{$org->owner}}</td>
        </tr>
      </tbody>
     </table>
 @endif
</div>

当然,如果不知道 Organization 模型中有什么,我们就无法知道 owner 和 name 是否作为模型的属性存在。