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

Laravel雄辩的附加非关系船舶数据与结果

嵇永望
2023-03-14

我有这个模型文件:-

    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Observation extends Model
    {
        protected $fillable = ['observation', 'recommendation', 'priority', 'report_asset_id'];
        protected $appends = ['facility'];
    
        public function attachments()
        {
            return $this->hasMany('App\ObservationAttachment');
        }
    
        public function report_facility()
        {
            return $this->belongsTo('App\ReportFacility');
        }
    
        public function getFacilityAttribute()
        {
            return $this->report_facility()->facility;
        }
  
}

这是我的查询代码:-

$observations = Observation::orderBy('created_at','desc')
       ->with('attachments')->get(); 

       return response()->json($observations);

我正在尝试附加getFacilityAttribute以包含在结果数组中。

我试图使用受保护的$append模型数组,但得到错误:-

调用未定义的方法照亮\数据库\雄辩\关系\属于::fac性()

共有1个答案

养鸿运
2023-03-14

以下行不正确:

return $this->report_facility()->facility

您正在启动一个查询,调用report_facility作为函数(report_facility()),返回一个查询生成器对象,其中设施函数未知。

你应该做:

return $this->report_facility->facility

在本例中,eloquent将为您提供ReportFacility模型,您可以从中检索facility属性或关系。

它类似于:

return $this->report_facility()->first()->facility
 类似资料:
  • 我试着补充: 并用调用,但响应为空。

  • 我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:

  • 我有以下2张表: 我想显示所有的汽车,由desc订购,但也由从透视表订购。修复的条目可以具有许多特定的。 所以如果是created_at,并且是created_at,但是修复中的在,我想显示BEFORE,因为关系是较新的。 我也不想从关系表中加载数据。 我试过以下方法: 和 ^此查询返回修复表中的所有项,即使字段为。我不能把他们分组。

  • 我有三种模式——博客、帖子、评论。博客有很多帖子,帖子有很多评论 当我写作时 它会给所有的博客发帖子和评论。但我将如何获得那些由管理员用户创建的博客,即评论表中的用户id。在哪里写入

  • 我是Laravel5.2的新手,正在开发一个遗留系统,对雄辩有点困惑,希望有人能给我代码。 共有3个表格: 卡片类别卡片2类 卡片可以是许多类别的一部分,这些类别保存在cards2cat表中。 cards2cat表的结构如下 id(主键)图像(卡)类别 我想做的是在Cards模型中有一个方法,名为getCardsWithCategors,它返回Cards信息和category表中类别的名称。 ca

  • 我正在编写php代码,对于当前的项目,我正在使用laravel框架(带有雄辩的ORM)。在这个项目中,我创建了两个表:用户和任务。我想在这些表之间创建一个“一对多”的关系。因此,一个用户可以有许多任务。在Tasks类中,我创建了方法所有者(): 但是当我以前得到用户名的时候 我得到这个异常:未定义的属性:illumb\Database\Eloquent\Relations\BelongsTo::$