2016-06-18 4 views
0

У меня есть маршрут, чтобы показать профиль моих пользователей в моем проекте laravel. Но когда вы переходите к URL-адресу и заполняете имя пользователя, которого не существует, он дает неприятную ошибку, очевидно, потому что это имя пользователя не существует в базе данных.Обработка ошибок Laravel, когда маршрут не существует

Есть ли у кого-нибудь идеи, как я могу ошибаться?

Вот мой маршрут:

Route::get('user/{name}', '[email protected]'); 

Вот моя функция:

public function showUser($name) 
    { 
     $user = User::where('name' , '=', $name)->firstOrFail(); 
     return view('user.show', compact('user')); 
    } 

Это то, что я пытался, но, кажется, не работает, так как я получаю эту ошибку: Вид не найден

$user = User::where('name' , '=', $name)->first(); 
     if(!empty($user)){ 
      return view('user.show', compact('user','projects')); 
     }else{ 
      return view('user'); 
     } 
+0

не используют 'firstOrFail', а' first', проверьте, нашли ли вы что-то сами и отреагируете перенаправлением или тем, что хотите. – Pevara

+0

@Pevara Это проблема, которая у меня есть, я точно не знаю, как перенаправить, когда результатов нет. Я неудачно новичок в laravel :) – Cruzito

+0

https://laravel.com/docs/5.0/responses#redirects – Pevara

ответ

1

Попробуйте

 $user = User::where('name' , '=', $name)->first(); 
     if(!empty($user)){ 
      return view('user.show', compact('user','projects')); 
     }else{ 
      return redirect()->route('/routeWhereYouWannaSend'); 
     } 

Для получения дополнительной информации читайте HTTP Responses

второй Решение: If вы хотите перенаправить на главную страницу маршрут (ы), который вообще не существует Link

1

Вы можете использовать первый способ, чтобы получить имя пользователя из таблицы пользователя

public function showUser($name){ 
     $user = User::where('name' , '=', $name)->first(); 
     if(!empty($user)){ 
      return view('user.show', compact('user')); 
     } 

} 

}

Позволяет убедиться, что ваш файл представления в папке пользователя

+0

Я пробовал это, см. Отредактированный вопрос. Не работает. – Cruzito

+0

Что такое сообщение об ошибке? –

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