我试图从我的桌面成绩中检索单个列。 为此我在控制器中使用了以下代码:
public function verify($id,$sid)
{
$grade=Grade::all('annual')->whereLoose('id',$id);
return $grade;
}
其中,年度是列名。但是它返回了数组[]的空集。
答案 0 :(得分:0)
all()获取要从数据库加载的列的列表。在您的情况下,您只获取一个名为年度的列,因此稍后过滤 id 不会返回结果。用以下内容替换您的代码,它应该工作:
$grade = Grade::all('id', 'annual')->whereLoose('id', $id);
请记住,它将返回一组对象,而不是单个对象。
注意:您始终从数据库中加载所有成绩对象,这些对象效率不高且不必要。您可以使用以下代码简单地获取具有给定id的对象:
$grade = Grade::find($id); // fetch all columns
$grade = Grade::find($id, ['id', 'annual']); // fetch only selected columns
答案 1 :(得分:0)
您正在使用的代码是从grades
表加载所有行并在代码中过滤它们。最好让您的查询执行过滤器工作。
对于列部分,您可以将所需的列添加到查询的first()
函数中,如下所示:
public function verify($id,$sid)
{
$grade = Grade::where('id', $id)->first(['annual']);
return $grade->annual;
}