フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援
フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援

laravelのwithとloadの違い

laravelでloadした時に、取得する側の論理削除を無効にしてデータを取得する方法をまとめています。
laravelのバージョンは5.1です。

usersとpostsが1対Nであるとします。
usersテーブルで論理削除されていてもユーザーの情報を取得したい場合には以下のように記述します。

$posts = AppPost::all();
$posts->load(['user' => function($query) {
    $query->withTrashed();
});

論理削除したデータも取得する場合はwithTrashed()を使います。
loadで検索条件を追加する場合は、キーにモデル名、値はクエリインスタンスを受け取る「クロージャ」となる配列を記述し、クロージャ内に検索条件を記述します。

以下を参考にさせていただきました。
stackoverflow.com/questions/21995670/how-to-use-withtrashed-when-im-querying-using-eager-loading

[紹介元] PHPタグが付けられた新着投稿 – Qiita laravelのwithとloadの違い

コメント

記事に戻る

コメントを残す