HasRelationships.php 中的 ErrorException

Posted

技术标签:

【中文标题】HasRelationships.php 中的 ErrorException【英文标题】:ErrorException in HasRelationships.php 【发布时间】:2017-10-12 02:31:58 【问题描述】:

我收到此错误,但我不确定是因为关系还是其他原因?

错误

ErrorException in HasRelationships.php line 487:
Class 'Company' not found 

用户.php

public function company() $this->belongsTo('Company', 'user_id');

公司.php

public function user() $this->belongsTo('User') ;

现在我的目标是隐藏导航栏中的“创建列表”按钮,如果用户与公司表没有关系。我知道我可以使用角色或中间件来实现,但我的朋友给我发了类似的东西并告诉我这样做更容易。

if(count($user->company) > 0) 

所以现在我正在尝试找出方法,但仍然无法弄清楚如何修复错误。

导航视图

@inject('user', 'App\User')
   @if(count($user->company) > 0)
     <li><a href="route('listings.create', [$area])">Add listing</a></li>
   @endif

///更新

它没有找到类“公司”,因为我没有在我的关系中使用完整的命名空间,但现在我收到了这个新错误。

错误

ErrorException in HasAttributes.php line 403:
Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation 

(View: /Users/username/Desktop/laravel/resources/views/layouts/partials/_navigation.blade.php) 
(View: /Users/username/Desktop/laravel/resources/views/layouts/partials/_navigation.blade.php) 
(View: /Users/username/Desktop/laravel/resources/views/layouts/partials/_navigation.blade.php)

【问题讨论】:

【参考方案1】:

在关系代码中使用完整的命名空间:

public function company()

    return $this->belongsTo('App\Company', 'user_id');

【讨论】:

好吧,有些东西改变了,但现在我得到了这个Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation 谢谢,完整的命名空间解决了这个问题,我更新了主题。

以上是关于HasRelationships.php 中的 ErrorException的主要内容,如果未能解决你的问题,请参考以下文章

计算数据框中列中的组

未知速记标志:-E 中的“E”

python中的e.printStackTrace等价物

R中的统计测试中的0 0.000e + 00是啥意思?

second tell seldom metter中的e发音哪个不一样?

Firefox 中的拖动事件没有 e.clientX 或 e.clientY