私はテーブルグレードから単一の列を取得しようとしています。私は私のコントローラで次のコードを使用していることについては :年間は、列名で、データベースから単一の列を取得できません。 Laravel
public function verify($id,$sid)
{
$grade=Grade::all('annual')->whereLoose('id',$id);
return $grade;
}
。しかし、配列[]の空のセットを戻しています。
私はテーブルグレードから単一の列を取得しようとしています。私は私のコントローラで次のコードを使用していることについては :年間は、列名で、データベースから単一の列を取得できません。 Laravel
public function verify($id,$sid)
{
$grade=Grade::all('annual')->whereLoose('id',$id);
return $grade;
}
。しかし、配列[]の空のセットを戻しています。
all()は、データベースからロードする列のリストをとります。あなたのケースでは、という名前の1つのカラムしか取得していないので、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
を使用しているコードはgrades
テーブルからすべての行を読み込み、コードでそれらをフィルタリングしています。クエリにフィルタ作業をさせる方がよいでしょう。
public function verify($id,$sid)
{
$grade = Grade::where('id', $id)->first(['annual']);
return $grade->annual;
}
ありがとうございました! – Anon
グレート:
列の一部について、あなたはそうのように、クエリの
first()
機能に必要な列を追加することができます!それは完璧に動作し、ノートのおかげで!私はそれを続けます! – Anon