2015-04-18 2 views
3

Я хотел создать подтверждение о регистрации,Когда использовать прерывание (404) в Ларавеле?

До сих пор я планировал, что мой стол Пользователи должны иметь confirmation_code колонку, и confirmed колонку. Обозначенный столбец имеет значение по умолчанию 0 (логическое значение false).

Я создаю нового пользователя из регистрации и присваиваю ему код подтверждения.

Затем я посылаю им ссылку на маршрут проверки, ожидающий этого подтверждения_код в строке запроса.

Метод, который обрабатывает запрос проверки, будет проверять, существует ли параметр строки запроса (confirm_code).

Мой вопрос,

Если CONFIRMATION_CODE отсутствует, следует использовать метод (404) на прерывание? Или бросить обычное исключение?

public function verify($confirmation_code) 
{ 
    if (! $confirmation_code) { 

     // abort(404)? 
     // or, 
     // throw new Exception? 

Некоторая обратная связь о том, когда использовать метод прерывания, будет также оценена.

+0

бросить исключение –

ответ

0

Существует довольно простое правило для подражания.

Если пользователь может исправить недостающее поле, отметьте ошибку в своем представлении.

Если пользователь не может исправить недостающее поле, выбросьте исключение. Как вы регистрируетесь, это зависит от вас, и вам может или не обязательно сообщать пользователю «что-то плохое» в зависимости от контекста.

Если ресурс, который пользователь ищет, не существует или не должен существовать для пользователя по какой-либо причине, показать 404. Классический случай, переходя на маршрут в /admin без входа. Вы также можете использовать 401, но это вводит в заблуждение, если маршрут не примет заголовок WWW-Authenticate в последующем запросе.

Gist:

Если что-то пошло не так из-за пользователя делает что-то неправильно, скажите пользователю.

Если что-то пошло не так, потому что все было не так, как ожидалось, сообщите своим журналам и (опционально) сообщите об этом пользователю. Исключения - отличные способы инкапсулировать все это.

Если что-то не существует, или не должно быть, если пользователь не изменит что-то о себе или запрос, показывают 404.

1

На самом деле ваш выбор - выбрать тип обработки ошибок и ведения журнала ошибок, которые вы реализуете в своем проекте.

Как совет, я скажу, что использование пользовательских исключений для отсутствующих исключений полей. это лучшая идея. Вы можете узнать больше о ошибке 404 в данной ссылке:

404 error.

Также обратитесь к документации по laravel для получения более подробной информации о регистрации ошибок.