@GaserV

Почему не известна переменная?

Такая ситуация. Делаю верификацию юзеров по ящику. Почему пишет что $user undefined в строке Mail?

З.Ы. Данные приходят, и массивы не пустые.

public function signup(Request $request)
    {
        $user = array(

            'firstname' => $request->firstname,
            'lastname' => $request->lastname,
            'middlename' => $request->middlename,
            'gender' => $request->gender,
            'email' => $request->email,
            'password' => $request->password,
            'password_confirm' => $request->password_confirm,
            'confirm_code' => encrypt(str_random(30)),

        );

        $rules = array(
            'firstname'  => 'required',
            'lastname'   => 'required',
            'middlename' => 'required',
            'email'      => 'required|email|unique:users',
            'password'   => 'required',
            'password_confirm' => 'required|same:password'
        );

        $validator = Validator::make($user,$rules);

        if($validator->fails())
            return response() -> json(array(
                'fail' => true,
                'errors' => $validator->getMessageBag()->toArray()
            ));
        else {
            $user['password'] = bcrypt($user['password']);

            $data = array(
                'username' => $user['firstname'],
                'confirm_code' => $user['confirm_code'],
            );

            if (User::create($user)) {
                Mail::send('email_verify', $data, function($message) {
                    $message->to($user['email'], $user['firstname'])
                        ->subject('Подтверждение регистрации');
                });  

                return response() -> json(array(
                    'success' => 'Вы успешно зарегистрировались. Проверьте ваш почтовый ящик и активируйте аккаунт.'
                ));
            }
            else {
                return 'false';
            }
        }
    }
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Скорее всего по тому, что Вы используете там т.н. колбэк-функцию (или по русски - функцию-замыкание), а область её видимости обычно строго ограничена.

Думаю, ситуацию исправило бы примерно следующее:
Mail::send('email_verify', $data, function($message) use ($user) { ...


Тут немного подробностей.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы