web-dev-qa-db-ja.com

Laravel Eloquent-1行取得

これは簡単な質問かもしれませんが、私はこれを理解できません。私は以下を使用してメールでユーザーを取得しようとしています:

$user = User::whereEmail($email)->get();

しかし、これは$ usersの(次元1の)配列を返しています。名前を取得したい場合は、$user[0]['first_name']を実行する必要があります。

limit(1)またはtake(1)、または->toArray()を使用しようとしましたが、違いはありませんでした。

私は何を間違えていますか?

65
Kousha

単にこれを使用:

$user = User::whereEmail($email)->first();
159
Ganesh Jogam

これもできます

これを使用する前に、コントローラーでDBファサードを宣言する必要があります。

use Illuminate\Support\Facades\DB;

これを使用して行を取得できます

$getUserByEmail = DB::table('users')->where('email', $email)->first();

またはこれによっても

$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['[email protected]']);

これは、1つのアイテムのみを含む配列を返し、最初の配列はオブジェクトを返します。心に留めておきます。

お役に立てれば。

18
Koushik Das

Laravel Eloquentを使用すると、first()メソッドを使用して1行を取得できます。

where()条件が見つからない場合、テーブルの最初の行を返します。それ以外の場合は、指定された基準の最初に一致した行を返します。

構文:

Model::where('fieldname',$value)->first();

例:

$user = User::where('email',$email)->first(); 
//OR
//$user = User::whereEmail($email)->first();
0
Haritsinh Gohil