【问题标题】:Getting a distinct column with laravel blade使用 laravel 刀片获得不同的列
【发布时间】:2016-02-15 11:08:32
【问题描述】:

我正在尝试进行此查询:

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  

我的控制器:

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

我收到此错误:

Relationship 方法必须返回 Illuminate\Database\Eloquent\Relations\Relation 类型的对象

当我尝试访问时发生错误:

$prof->ano_semestre

【问题讨论】:

    标签: laravel blade


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      • 2020-03-05
      • 2021-07-04
      • 1970-01-01
      • 2018-04-10
      相关资源
      最近更新 更多