用laravel刀片获得一个独特的柱子

时间:2016-02-15 01:51:01

标签: laravel blade

我正在尝试进行此查询:

SELECT DISTINCT field_1 FROM Table1

我的模特:

public function ano_semestre()
{
   return Turma::distinct()->select('ano_semestre')->get()->toArray();
}

我的观点:

@foreach($professor as $key => $prof)
      @foreach($prof->ano_semestre as $semestre)
           {{ dd($semestre->ano_semestre) }}
       @endforeach
 @endforeach  

MY Controller:

public function getProfessorList()
{
    $professor = Professor::all();
    return View::make('professor', compact('professor'));
}

我收到了这个错误:

  

关系方法必须返回类型为Illuminate \ Database \ Eloquent \ Relations \ Relation

的对象

尝试访问时出现错误:

$prof->ano_semestre

1 个答案:

答案 0 :(得分:1)

在您看来,您已经访问了ano_semestre属性,而不是方法。您使用的是$prof->ano_semestre,而不是$prof->ano_semestre()

在Laravel中,当访问Model的属性时,它首先检查该属性是否作为字段存在。如果没有,则检查模型上是否存在与该属性同名的方法。如果是这样,它假定此方法是关系方法,并且关系方法必须返回Relation对象(如您的错误消息所示)。

您没有将此正确定义为关系方法,并且它看起来不像您尝试的那样。只需确保您正在调用该方法,而不是尝试将其用作属性。将$prof->ano_semestre更改为$prof->ano_semestre()

相关问题