Как как сделатьпроверку в Laravel?

Меняю вопрос
Я делаю активацию аккаунта по телефону, я реализовал отправку кода подтверждения, никак не могу реализовать саму активацию после регистрации.
Делаю саму регистрацию, если прошло всё нормально, то отправляется код и выводится страница для его ввода
public function postRegister() {

......................................................................................................

 // Сама регистрация с уже проверенными данными
        $user = new User();
        $user->fill($date);
        $userId = $user->register();
 
        // Вывод информационного сообщения об успешности регистрации
        return View::make('users/activ');
    }

сама форма ввода
{{ Form::open(array('url' => action('UsersController@postActiv'), 'method' => 'post', 'role' => 'form', 'class' => 'form-horizontal')) }}
    <div class="form-group">
        <label for="activationCode" class="col-sm-2 control-label">Код активации</label>
        <div class="col-sm-5">
            {{ Form::text('activationCode', null, array('class' => 'form-control')) }}
        </div>
    </div>
 
    <div class="form-group">
        <div class="col-sm-2">&nbsp;</div>
        <div class="col-sm-5">
            <button type="submit" class="btn btn-primary">Активировать</button>
        </div>
    </div>
    {{ Form::close() }}

а дальше начинается то, что я никак не могу реализовать. Начиная с первой строки, а точнее получение записи этого пользователя
public function postActiv($userId) {
        //Получаем данные о пользователе
        $u = User::find($userId);
        //Получаем данные из форма
        $сform = Input::get('activationCode');
        //Проверяем совпадает ли код у пользователя и код из формы
        if ($u == $сform){
            Auth::user();
        }
        $maseg = 'Вы ввели неверный код активации';
        return Redirect::back()->withAlert($maseg);
    }

ну и User.php
public function activate() {
        // Если пользователь уже активирован, не будем делать никаких
        // проверок и вернем false
        if ($this->isActive) {
            return false;
        }
        
        $сform = $this->сform;
        // Если коды не совпадают, то также ввернем false
        if ($сform != $this->activationCode) {
            return false;
        }
 
        // Обнулим код, изменим флаг isActive и сохраним
        $this->activationCode = '';
        $this->isActive = true;
        $this->save();
 
        // И запишем информацию в лог, просто, чтобы была :)
        Log::info("User [{$this->email}] successfully activated");
 
        return true;
    }
  • Вопрос задан
  • 2463 просмотра
Пригласить эксперта
Ответы на вопрос 1
У Вас в контроллере подразумевается передача из формы в URL id пользователя для поиска соответствующего пользователя в БД в соответствующем методе (postActiv($userId)). При этом, в форме Вы никак не включаете в URL формы этот идентификатор.

Ну и, собственно, Вы пытались дебажить ввод в методе? Все ли данные получаете для каждой строки кода или где-то что-то упускаете? Какие ошибки выдаёт система?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы