Laravel 8 有條件的搜索模型實(shí)例

2021-07-26 09:59 更新

有時(shí)候你可能需要在某些條件下模型是可搜索的。例如,假設(shè)你有 App\Models\Post 模型可能兩種狀態(tài)之一:「草稿」和「發(fā)布」。你可能只允許搜索 「發(fā)布」過的帖子。為了實(shí)現(xiàn)這一點(diǎn),你需要在模型中定義一個(gè) shouldBeSearchable 方法:

public function shouldBeSearchable()
{
    return $this->isPublished();
} 

只有在通過 save 方法、查詢或關(guān)聯(lián)模型操作時(shí),才應(yīng)使用 shouldBeSearchable 方法。直接使用 searchable 方法將使模型或集合的可搜索結(jié)果覆蓋 shouldBeSearchable 方法的結(jié)果:

// 此處將遵循 "shouldBeSearchable" 結(jié)果...
App\Models\Order::where('price', '>', 100)->searchable();

$user->orders()->searchable();

$order->save();

// 此處將覆蓋 "shouldBeSearchable" 結(jié)果...
$orders->searchable();

$order->searchable(); 


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)