2016-05-31 35 views
0

我試圖從我的表格等級中檢索單個列。 對於我已經使用下列在我的控制器代碼:無法從數據庫中檢索單個列。 Laravel

public function verify($id,$sid) 
{ 

$grade=Grade::all('annual')->whereLoose('id',$id); 
return $grade; 

} 

其中,年是列名。但它返回數組[]的空集。

回答

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 
+0

太好了!它完美的作品,謝謝你的注意!我會繼續! – Anon

0

您正在使用從grades表中加載的所有行,並在代碼中過濾他們的代碼。最好讓你的查詢完成過濾工作。

對於列部分,您可以在需要的列添加到查詢的first()功能,像這樣:

public function verify($id,$sid) 
{ 
    $grade = Grade::where('id', $id)->first(['annual']); 
    return $grade->annual; 
} 
+0

感謝它的工作! – Anon