2014-02-06 5 views
0

У меня есть Laravel 4 модели:попытка поймать заявление не поймать пользовательских исключений

Class Organisation extends Eloquent { 

.... 


/** 
* add user to organisation & assign permission group 
* 
* @param $user User user to add to organisation 
* @param $group String name of the permissions group to add the user to 
* @return void 
*/ 
public function addUser(User $user, $group = 'Editors') 
{ 
    // make sure the user is not already in the organisation 
    if(! $this->users->contains($user->id)) 
    { 
     // if organisation has no users, force first user as an admin 
     if(! $this->users->count()) 
      $group = 'Admins'; 

     if($group = $this->getGroup($group)) 
     { 
      if($user->addGroup($group) && $this->users()->attach($user)) 
       return true; 
     }     
    } 
    else 
     throw new UserExistsException($user->fullName()." already belongs to ".$this->title."."); 
} 

.... 
} 

Также у меня есть контроллер вызова этой функции/модель:

/** 
* Manage users form processing 
* 
* @return Redirect 
*/ 
public function postIndex(Organisation $organisation) 
{ 
    if($user = Sentry::findUserByLogin(Input::get('email'))) 
    { 
     try 
     { 
      if($organisation->addUser($user, 'Editors')) 
       return Redirect::route('organisation-user-index', $organisation->id) 
        ->with('success', '<strong>' . $user->fullName() . '</strong> successfully added.'); 
     } 
     catch(Cartalyst\Sentry\Users\UserExistsException $e) 
     { 
      return Redirect::route('organisation-user-index', $organisation->id) 
       ->with('error', $e); 
     } 
    } 

    return Redirect::route('organisation-user-index', $organisation->id) 
     ->with('error', 'Something went wrong. Try again.'); 
} 

ПОЧЕМУ подвох Постулаты не получая при получении исключение, когда это происходит? а его просто бросают ... и не поймали?

ответ

4

Вы не показывать весь свой код, но он выглядит, что вы используете пространство имен, так что вы, вероятно, придется:

catch(\Cartalyst\Sentry\Users\UserExistsException $e) 

Вместо

catch(Cartalyst\Sentry\Users\UserExistsException $e) 
+0

Это было. Я забыл добавить конечную косую черту. Конечная косая черта вернула бы мою область пространства имен в корневой каталог. благодаря! – AndrewMcLagan

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