[解決済み] find(), findOrFail(), first(), firstOrFail(), get(), list(), toArray() の違いは何ですか?
質問
これらの方法の違いは何ですか。
-
find()
-
findOrFail()
-
first()
-
firstOrFail()
-
get()
-
list()
-
toArray()
使ってみて、それぞれ違った結果が得られるので、時には
toArray()
の末尾にある
get()
というのも、私の関数は配列を期待しているからです。他のメソッドも同様に配列を生成しないのでしょうか?
どのように解決するのですか?
-
find($id)
は、id を受け取り、単一のモデルを返します。一致するモデルが存在しない場合、それはnull
. -
findOrFail($id)
は、id を受け取り、単一のモデルを返します。一致するモデルが存在しない場合、エラーを投げます。 1 . -
first()
は、データベースで見つかった最初のレコードを返します。マッチするモデルが存在しない場合、それはnull
. -
firstOrFail()
は、データベースで見つかった最初のレコードを返します。一致するモデルが存在しない場合、エラーを投げます。 1 . -
get()
は、クエリにマッチするモデルのコレクションを返します。 -
pluck($column)
は、指定されたカラムの値だけのコレクションを返します。Laravelの以前のバージョンでは、このメソッドはlists
. -
toArray()
は、モデル/コレクションをシンプルな PHP 配列に変換します。
注 コレクション は、より強化された配列です。機能は配列とほぼ同じですが、多くの機能が追加されています。 ドキュメント .
残念ながら、PHP では、配列が使える場所ならどこでもコレクションオブジェクトを使えるというわけではありません。たとえば、コレクションを
foreach
ループに渡すのは良いのですが、それを
array_map
はありません。同様に、もしあなたが引数を
array
の場合、PHP はコレクションを渡すことを許しません。PHP 7.1 以降は
iterable
タイプヒント
これは、配列とコレクションの両方を受け入れるために使用することができます。
コレクションからプレーンな配列を取得したい場合は、そのコレクションの
all()
というメソッドがあります。
1
が投げるエラーは
findOrFail
と
firstOrFail
メソッドは
ModelNotFoundException
. この例外を自分でキャッチしない場合。
Laravelは404で応答します。
これは、ほとんどの場合、あなたが望むことです。
関連
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み] 配列の最初の要素を取得する
-
[解決済み] パブリック、プライベート、プロテクトの違いは何ですか?
-
[解決済み] PHPの文字列で、シングルクオートとダブルクオートの違いは何ですか?
-
[解決済み] PHPのHTTP_HOSTとSERVER_NAMEの違いは何ですか?
-
[解決済み] クライアントサイドとサーバーサイドのプログラミングの違いは何ですか?
-
[解決済み] bindParamとbindValueの違いは何ですか?
-
[解決済み] PHP 5.2.8で2つのDateTimeオブジェクトを比較するにはどうすればよいですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] PHPを使用して2つの日付の差を計算する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】mysqli_result クラスのオブジェクトを文字列に変換できない
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み] $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて