在Laravel模型中从Limit()切换到First()
我被困在一个问题上,我试图清理呈现给我的代码,我觉得我在这个问题上做得太久了,看不到这个问题 目前,我的一个模型中有以下代码: 公共功能附件{ return$this->hasmanyvolunterationattachment::class,“志愿者id”和“id”; } 公共函数类照片{ $photoID=$this->attachments->where'category','Drivers License'->orderBy'endDate','desc'->limit1; 返回$photoID; } 我想做的是,我认为用一个简单的first替换函数photoIdentification的limit1是相对简单的 但是,当我尝试这样做并将{{$志愿者->photoID->id}}放在我的刀片中时,它只会返回错误App\志愿者::photoID必须返回一个关系实例 然而,我确实知道这是一种关系,因为如果我继续使用limit1,并将: @foreach$志愿者->照片id作为$id {{$id->id} @endforeach 它正确返回关系和文档 $志愿者是特定模型App\志愿者的变量,以下是它在控制器中的定义方式: 公众活动义工$义工{ 返回视图'志愿者.表演',压缩'志愿者'; } 函数photoID仍将返回完整的附件对象。如果要使用第一个函数获取id,必须选择对象上的id属性,如下所示:在Laravel模型中从Limit()切换到First(),laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我被困在一个问题上,我试图清理呈现给我的代码,我觉得我在这个问题上做得太久了,看不到这个问题 目前,我的一个模型中有以下代码: 公共功能附件{ return$this->hasmanyvolunterationattachment::class,“志愿者id”和“id”; } 公共函数类照片{ $photoID=$this->attachments->where'category','Drivers License'->orderBy'endDate','desc'->limit1; 返回$ph
{{ $volunteer->photoID()->id }}
您还可以在直接返回此属性的模型上执行以下操作:
public function getPhotoidAttribute($value)
{
return $this->attachments()->where('category','Drivers License')->orderBy('endDate','desc')->first()->id;
}
现在,在blade中,您只需使用:
{{ $volunteer->photoid }}
当您将模型的函数作为变量调用时,Laravel假定您试图返回一个相关的模型。试着换一种方式: 这样称呼它:
{{ $volunteer->photoid }}
什么是$志工。$志工只是特定型号应用程序\志工的变量。这没有帮助,编辑您的问题并添加与您的问题相关的所有内容。好吧,除了我刚才包含的控制器之外,所有内容都在那里。正如我所说的,第一种方法是作为集合返回,而第二种方法不是第一种方法,它应该返回一个实例。试着用一个字母代替
{{ $volunteer->photoid }}