これは簡単な質問かもしれませんが、私はこれを理解できません。私は以下を使用してメールでユーザーを取得しようとしています:
$user = User::whereEmail($email)->get();
しかし、これは$ usersの(次元1の)配列を返しています。名前を取得したい場合は、$user[0]['first_name']
を実行する必要があります。
limit(1)
またはtake(1)
、または->toArray()
を使用しようとしましたが、違いはありませんでした。
私は何を間違えていますか?
単にこれを使用:
$user = User::whereEmail($email)->first();
これもできます
これを使用する前に、コントローラーで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つのアイテムのみを含む配列を返し、最初の配列はオブジェクトを返します。心に留めておきます。
お役に立てれば。
Laravel Eloquentを使用すると、first()
メソッドを使用して1行を取得できます。
where()
条件が見つからない場合、テーブルの最初の行を返します。それ以外の場合は、指定された基準の最初に一致した行を返します。
構文:
Model::where('fieldname',$value)->first();
例:
$user = User::where('email',$email)->first();
//OR
//$user = User::whereEmail($email)->first();