第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

避免特定查詢上的 laravel 全局作用域

避免特定查詢上的 laravel 全局作用域

PHP
不負(fù)相思意 2023-11-03 15:15:18
我有一個(gè)stuents包含 3 列的表格graduated,leaver并且deleted_at。畢業(yè)和離開者都是 int (1),默認(rèn)值為 null。當(dāng)學(xué)生畢業(yè)或離開學(xué)校時(shí),相應(yīng)的欄位變?yōu)?。當(dāng)我使用$students=Student::get();我只需要返回 Student(其中g(shù)raduated和leaver為 null),因此我創(chuàng)建了兩個(gè)全局范圍:protected static function boot(){    parent::boot();     static::addGlobalScope('onlyGraduated', function ($builder) {        $builder->where('graduated', null);    });    static::addGlobalScope('onlyLeaver', function ($builder) {        $builder->where('leaver', null);    }); }這適用于大多數(shù)用例,但是當(dāng)我希望學(xué)生畢業(yè)時(shí),我應(yīng)該對某些特定查詢做什么?例如Students::where("graduated",1)->get();
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

如果您需要避免特定查詢中的全局范圍,則 yuu 應(yīng)使用withoutGlobalScope:


Students::withoutGlobalScope('onlyGraduated')->where("graduated",1)->get();

我將在您的模型中創(chuàng)建一個(gè)名為graduated和 的本地范圍leaver:


public function scopeGraduated($query) {

  return $query->withoutGlobalScope('onlyGraduated')->where("graduated",1);

}


public function scopeLeavers($query) {

  return $query->withoutGlobalScope('onlyLeaver')->where("leaver",1);

}

然后您將能夠使用以下方式查詢數(shù)據(jù):


Students::get(); // Only students with both graduated and leaver null

Students::graduated()->get(); // Students with leaver null and graduated 1

Students::leavers()->get(); // Students with leaver 1 and graduated null


查看完整回答
反對 回復(fù) 2023-11-03
  • 1 回答
  • 0 關(guān)注
  • 185 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)