[解決済み] Eloquent ->first() if ->exists()
2023-08-09 06:51:04
質問
テーブルの中で条件にマッチする最初の行を取得したい。
User::where('mobile', Input::get('mobile'))->first()
うまくいくのですが、条件が一致しない場合はExceptionを投げてしまいます。
ErrorException
Trying to get property of non-object
現在、私はこのように解決しています。
if (User::where('mobile', Input::get('mobile'))->exists()) {
$user = User::where('mobile', Input::get('mobile'))->first()
}
2つのクエリを実行することなく、これを行うことはできますか?
どのように解決するのですか?
注:first()メソッドは、元の質問で説明したように例外を投げません。 もしこのような例外が発生するのであれば、あなたのコードに別のエラーがあるのでしょう。
first()を使用し、結果を確認する正しい方法です。
$user = User::where('mobile', Input::get('mobile'))->first(); // model or null
if (!$user) {
// Do stuff if it doesn't exist.
}
その他のテクニック(推奨しない、不必要なオーバーヘッド)。
$user = User::where('mobile', Input::get('mobile'))->get();
if (!$user->isEmpty()){
$firstUser = $user->first()
}
または
try {
$user = User::where('mobile', Input::get('mobile'))->firstOrFail();
// Do stuff when user exists.
} catch (ErrorException $e) {
// Do stuff if it doesn't exist.
}
または
// Use either one of the below.
$users = User::where('mobile', Input::get('mobile'))->get(); //Collection
if (count($users)){
// Use the collection, to get the first item use $users->first().
// Use the model if you used ->first();
}
それぞれ、必要な結果を得るための異なる方法です。
関連
-
[解決済み】予期せぬ例外。SQLSTATE[HY000] [1045] Access denied for user ****@'localhost' (using password: YES)
-
[解決済み] 配列の最初の要素を取得する
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] Laravel Eloquentを使用して複数のWhere句クエリを作成する方法?
-
[解決済み] Laravel Eloquentを使って最後に挿入されたIDを取得する
-
[解決済み] Laravel レコードが存在するかどうかをチェックする
-
[解決済み] Laravel Eloquent クエリ WHERE を OR AND OR で使用する?
-
[解決済み】Laravel - EloquentまたはFluentランダム行
-
[解決済み】LaravelのEloquentタイムスタンプを無効にする
-
[解決済み] Laravel Eloquent フィールドが X または null の場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】「初期通信パケットの読み込み」でMySQLサーバーに接続できなくなり、システムエラーになる。0
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み】メッセージ。Trying to access array offset on value of type null [重複]配列のオフセットにアクセスしようとしています。
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み] Forbidden :このサーバーの /phpmyadmin にアクセスする権限がありません。
-
[解決済み] Laravel 関連するモデルが存在するかどうかをチェックする