Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.07.2015 19:38:33

must be an instance of App\User, none given

делаю подтверждение регистрации...

роуты

Route::post('/verify/', 'Auth\AuthController@verificationAccount');
Route::get('/verify/{code}', 'Auth\AuthController@activateAccount');

форма проверки

@extends('global');
@section('content')
    <p>Необходимо подтверждение email'a...</p>
    {!! Form::open(array('url' => 'http://domain.tdl/verify/' ,'method' => 'post', 'class' => 'form-horizontal')) !!}
    {!! Form::text('activation_code',NULL,array('class' => 'input-medium')) !!}
    {!! Form::submit('Активировать',array('class' => 'btn btn-success')) !!}
    {!! Form::close() !!}

@stop

контроллеры

    public function verificationAccount($code, User $user)
    {
        $code=Input::get('activation_code');
        if ($user->accountIsActive($code)) {
            Session::flash('message', 'Success, your account has been activated.');
            return redirect('/');
        }
        else
        {
            Session::flash('message', 'Your account couldn\'t be activated, please try again');
            return redirect('/');
        }
    }

    public function activateAccount($code, User $user)
    {
        if ($user->accountIsActive($code)) {
            Session::flash('message', 'Success, your account has been activated.');
            return redirect('/');
        }
        else
        {
            Session::flash('message', 'Your account couldn\'t be activated, please try again');
            return redirect('/');
        }
    }

Второй роут и соотвественно функция отрабатывают нормально - проверка проходит штатно.
Если я пытаюсь код отправить через форму? то вылазит ошибка, что мол

ErrorException in AuthController.php line 111:
Argument 2 passed to App\Http\Controllers\Auth\AuthController::verificationAccount() must be an instance of App\User, none given

Как (через форму?) user передавать функции.
Заранее спасибо.

Изменено indarium (25.07.2015 19:38:47)

Не в сети

#2 27.07.2015 07:08:58

Re: must be an instance of App\User, none given

я не совсем понял откуда в verificationAccount взялся User - его нету в параметрах маршрута. если это попытка использовать внедрение зависимостей, то параметры с внедрением должны идти до параметром маршрута. кроме того в verificationAccount откуда-то взялся 'code' - его в параметрах маршрута тоже нет, но пхп на него не ругается видимо потому что нотисы отключены в error_reporting и он приходит просто null, зато он ругается на второй параметр потому что он должен быть User а null - не User.

Не в сети

#3 28.07.2015 16:55:00

Re: must be an instance of App\User, none given

constb пишет:

я не совсем понял откуда в verificationAccount взялся User - его нету в параметрах маршрута. если это попытка использовать внедрение зависимостей, то параметры с внедрением должны идти до параметром маршрута. кроме того в verificationAccount откуда-то взялся 'code' - его в параметрах маршрута тоже нет, но пхп на него не ругается видимо потому что нотисы отключены в error_reporting и он приходит просто null, зато он ругается на второй параметр потому что он должен быть User а null - не User.

Ну, в activateAccount User'a тоже нету в параметрах маршрута:) Code передается post запросом, поэтому в маршруте его нет.
А вообще, это сборная солянка из 1,
2 и 3, потому что толковой верификации я найти не смог.

Не в сети

Подвал раздела