2015-04-09 5 views
0

У меня есть проблема, потому что у моих запросов нет with (nolock) инструкция после from.Laravel Eloquent and Query Builder "с (nolock)"

Потому что некоторые запросы блокируют базу данных, и тогда никто не может использовать систему.

Как использовать with (nolock) с Eloquent & Query Builder?

Например .. в этом запросе:

return static::with('campaignType') 
    ->where('active', 1) 
    ->get(); 

Я хочу результат последующих:

select 
    * 
from campaigns with (nolock) 
inner join campaign_types with (nolock) on campaign_types.id = campaigns.campaign_type_id 
where campaigns.active = 1 
+0

Пожалуйста, пост код для нас пересмотреть. Вы также можете просмотреть DB: raw метод, если Laravel не поддерживает то, что вы ищете. –

+0

Я уверен, что 'DB :: raw' работает, но я хочу, чтобы было создано красноречивое/построитель запросов. Только если нет красноречивого варианта, я пытаюсь использовать raw. –

ответ

0

Вот как я справляюсь с его красноречивым (Испытано на Laravel 5.1 и 5.2)

Вам необходимо добавить область действия в вашу модель:

public function scopeNoLock($query) 
{ 
    return $query->from(DB::raw(self::getTable() . ' with (nolock)')); 
} 

Тогда вы можете назвать это как

return Model::noLock()->get(); 
Смежные вопросы