2015-04-27 4 views
1

Я хочу использовать транзакции в своем приложении laravel. Однако я изо всех сил стараюсь использовать их с «Красноречием».Сделки и красноречие

$user = $this -> auth -> user(); 

DB::transaction(function() 
{ 
    $stores_amount = $user -> stores() -> count(); #Error 
}); 

Я получаю сообщение об ошибке «Неопределенная переменная: пользователь». В чем моя проблема и как я могу правильно использовать инструкции SELECT в Eloquent с транзакциями?

+2

Скорее всего у вас есть проблема рамочной - переменные $ пользователя не отображается в пределах области действия. – patrickmdnet

ответ

3

$user не в сферу внутри обратного вызова

$user = $this->auth->user(); 

DB::transaction(function() use ($user) { 
    $stores_amount = $user->stores()->count(); 
}); 

EDIT

$stores_amount только внутри области видимости обратного вызова. Если вам нужно получить значение $stores_amount из сделки, то вы можете объявить его и масштаб его в функцию обратного вызова, а также, но по ссылке:

$user = $this->auth->user(); 
$stores_amount = 0; 
DB::transaction(function() use ($user, &$stores_amount) { 
    $stores_amount = $user->stores()->count(); 
}); 
+0

Ничего себе, спасибо. Это в основном то, что я хочу. Последнее: Кажется, у меня такая же проблема с переменной «$ stores_amount». Как я могу использовать его из транзакционной функции? – LuMa

Смежные вопросы