LoginSignup
109
77

More than 1 year has passed since last update.

Laravelのクエリビルダーの戻り値を勘違いしていた件について

Last updated at Posted at 2019-04-15

この記事は、筆者がLaravelを触り始めた時にメモ用で書いたものです。 実際にコーディングする際は、ご利用のバージョンに合った公式ドキュメントとGitHubのソースコードを見て実装してください。筆者は数年Laravelを書いていません。ご了承ください。

※必ず下記のGitHubのリポジトリのREADME.mdを読んで、適したバージョンのソースコードと公式ドキュメントを読んでください。

誰かが書いた古い記事を参考にコーディングをするのは危険です。

Laravelのクエリビルダーの戻り値(or 返り値)

もし「いいね」がついたら他のメソッドのものも追加してまとめ化する。

メソッド 返り値(型) 返り値(例) コメント
save boolean true, false 成功の結果
create object {id:1,name: テスト} 新規作成したレコード
insert boolean true, false 成功の結果
update integer 0, 1, 10など 影響を与えたレコード数
delete integer 0, 1, 10など 影響を与えたレコード数
first object {id:1,name:テスト} レコード1件 / 無ければ 5.1→NULL, 5.3→{}

時間のある時に取得系も追加していくつもり…

insert

新規登録が完了したかの正否を論理値で返却する。
つまり、true/falsebooleanで返してくれる。

update

影響を受けたレコード件数を返す。
つまり、0や1や10などのintegerで返してくれる。

delete

影響を受けたレコード件数を返す。
つまり、0や1や10などのintegerで返してくれる。

失敗談

updateやdeleteもbooleanで返却してくれると思って下記のようなコードを書いてデバックしてました。。。

確かに0が来ていれば更新はしていないんですが…

$res = DB::table('hoge')
    ->where('id', $id)
    ->update([
        'name' => $name
    ]);

// 別クラスで
if (!$res) '更新に失敗';
109
77
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
109
77