当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.5关系-错误异常试图获取非对象的属性

金阳华
2023-03-14

无法显示要查看的数据库信息,出现错误

尝试获取非对象的属性

让我解释一下逻辑:

  1. 用户可以创建多个公司

我没有问题插入信息到数据库,一切都很好。我可以在我的显示视图中显示来自用户表和公司表的所有信息,但我不能在我的视图中显示来自Company_Items表的信息。我想我的关系或钥匙出了问题,但是什么?尝试显示属于特定公司的项目名称

{{$company->company_items->name}}

公司表:

  • id(int)
  • company_name(字符串)
  • 信息(文本)
  • user_id(int)

公司项目表:

  • id(int)

公司模式:

class Company extends Model
{
  protected $table = 'company';

//relation. MANY companies can be created by ONE user
public function user(){
    return $this->belongsTo('App\User');
}

//relation. ONE company can have MANY items
public function item(){
    return $this->hasMany('App\Item');
}
}

项目型号:

class Item extends Model
{
 protected $table = 'company_items';

//relation. MANY items can be applied TO ONE company 
public function company(){
    return $this->belongsTo('App\Company');
}
}

控制器:

public function show($id)
    {

   $company = Company::find($id);
   $user = User::find($id);
   $company_items = Item::find($id);

   return view('company_show')->with(['company' => $company,'company_items' => $company_items]);

}

视图:

This is <b>{{$company->company_id}}</b> page info created by <b>{{$company->user->name}}</b><br>
                        Company category is <b>{{$company->company_category}}</b>.<br>
                        Item name is <b>{{$company->company_items->name}}</b>. // Can't display this expression

共有2个答案

何乐
2023-03-14

您犯的第一个错误是:

$company_items = Item::find($id);

这将返回ID为$ID的公司项目,这意味着它将返回与公司ID相同的项目!我肯定那不是你想要的。

相反,您可以:

$company_items = $company->item;

这将归还该公司的所有物品

在您的视图中,您可以使用Foreach循环访问项目:

@foreach($company_items as $item){
   {{$item->name}}
}
李宁
2023-03-14

$company-

试着去做:

$company->item[0]->name

@foreach($company->item as $item)

{{ $item->name }}

@endforeach

 类似资料:
  • 问题内容: 我试图从中获取数据: 但是如果我想使用以下代码获取player_name变量: 我得到错误: 注意:尝试在第9行+ var_dump()的** \ htdocs \ index.php中获取非对象的属性将返回:NULL 返回: 问题答案: 这是因为是对象的单元素数组,所以首先应访问作为对象的数组元素,然后访问其属性。 您粘贴的转储结果实际上很清楚地告诉了它。

  • 问题内容: 我正在尝试制作更新表单,该表单将为选定的特定ID检索数据,并填写表单,以便其可用于更新。 当我单击特定条目(在我的情况下为Product)上的Edit时,它将带我到,但是对于我在表单元素中使用的每个变量,都显示错误 “试图获取非对象的属性”。 使用,我得到了正确的关联数组,因此正确传递了它。 这是我的摘录。 是包含所有键值对的数组,但由于某种原因我无法填写表格。 先感谢您! 问题答案:

  • 问题内容: 我正在尝试编写一个脚本,该脚本使用cURL从远程位置(在本例中为twitch.tv)获取JSON文件(不要以为该部分太相关,尽管无论如何我还是最好提一下)。出于示例目的,假设它返回的JSON对象存储在变量中后看起来像这样: 我访问“流”属性,我尝试了以下代码: 当我尝试此操作时,出现错误“注意:试图在第48行的D:\ Servers \ IIS \ Sites \ mysite \ g

  • 简单的代码不起作用!我一直在用if语句获取行上非object的属性时出错。我尝试像数组一样访问它,但收到一条消息说它不能以数组的形式访问stdClass。 $group的print\u r、var\u dump和dd可以给出: 使用$setting=$group\u可以- 返回错误不能使用stdClass类型的对象作为数组 laravel错误的详细信息如下: 可处理的例外情况- 编辑我删除了第一部

  • 这是我能言善辩的关系- 当我访问完整对象时- 我得到对象 但当我试图从对象中访问单个属性时- 我有错误 正在尝试获取非对象的属性'Office_Name'

  • null null null 表名:data 提前谢谢你。