PHP

リレーション先のテーブルへのWhere

Laravel

 

tb_user_sectionテーブル

user_id section_id deleted
1 7 0
2 5 1

中間テーブルに論理削除のカラムがついているパターン

 

 

/app/Http/Models/Section.php

<?php

namespace App\Http\Models;

use App\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;

class Section extends Model
{

・・・

    public function members()
    {
        return $this->belongsToMany(
            'App\Http\Models\Members',
            'tb_member_section',
            'section_id',
            'member_id'
        );
    }

}

このままだとtb_user_section.deleted = 0のレコードも取得してしまう。。

 

    public function members()
    {
        return $this->belongsToMany(
            'App\Http\Models\Members',
            'tb_member_section',
            'section_id',
            'member_id'
        )->wherePivot('deleted', 0); // ←●追加
    }

wherePivot()を追加してあげれば良い

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)