@Michail_gore

Как справиться с ошибкой функции protected?

вообщем осваиваю laravel. Пытаюсь сделать форму регистрации на блог, при обьявлении функции вылетает такая ошибка :

"Parse error: syntax error, unexpected 'protected' (T_PROTECTED)"

вот сам код :

<?php
    
    namespace App\Http\Controllers\Auth;
    
    use App\User;
    use App\Http\Controllers\Controller;
    use Illuminate\Support\Facades\Validator;
    use Illuminate\Foundation\Auth\RegistersUsers;
    use Illuminate\Http\Request;
    
    class RegisterController extends Controller
    
    {
        /*
        |--------------------------------------------------------------------------
        | Register Controller
        |--------------------------------------------------------------------------
        |
        | This controller handles the registration of new users as well as their
        | validation and creation. By default this controller uses a trait to
        | provide this functionality without requiring any additional code.
        |
        */
    
        use RegistersUsers;
    
        /**
         * Where to redirect users after registration.
         *
         * @var string
         */
        protected $redirectTo = '/home';
    
        /**
         * Create a new controller instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->middleware('guest');
        }
    	/**
    	* @param Request $request
    	* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
    	*/
    	
    	public function register( Request $request)
        {
            $this->validator($request->all())->validate();
    
            event(new Registered($user = $this->create($request->all())));
    
            $this->guard()->login($user);
    
            return $this->registered($request, $user)
                            ?: redirect($this->redirectPath());
    
        /**
         * Get a validator for an incoming registration request.
         *
         * @param  array  $data
         * @return \Illuminate\Contracts\Validation\Validator
         */
        protected function validator(array $data)
        {
            return Validator::make($data, [
                'email' => 'required|string|email|max:255|unique:users',
                'password' => 'required|string|min:6|confirmed',
            ]);
        }
    
        /**
         * Create a new user instance after a valid registration.
         *
         * @param  array  $data
         * @return \App\User
         */
        protected function create(array $data)
        {
            return User::create([
                'name' => $data['name'],
                'email' => $data['email'],
                'password' => bcrypt($data['password']),
            ]);
        }
    }


Я так понимаю, что ошибка из-за того, что я не обьявил класс Request, но я также не могу его импортировать по неизвестным мне причинам. вставлял через app/library/request в controller, ошибка все равно выходит. Помогите пожалуйста.
  • Вопрос задан
  • 653 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
У функции register потерялась закрывающая скобка.
Ответ написан
Комментировать
tregor
@tregor
Senior PHP Backend developer
Исправьте код на нижеследующий, так должно заработать!

<?php
    
    namespace App\Http\Controllers\Auth;
    
    use App\User;
    use App\Http\Controllers\Controller;
    use Illuminate\Support\Facades\Validator;
    use Illuminate\Foundation\Auth\RegistersUsers;
    use Illuminate\Http\Request;
    
    class RegisterController extends Controller
    
    {
        /*
        |--------------------------------------------------------------------------
        | Register Controller
        |--------------------------------------------------------------------------
        |
        | This controller handles the registration of new users as well as their
        | validation and creation. By default this controller uses a trait to
        | provide this functionality without requiring any additional code.
        |
        */
    
        use RegistersUsers;
    
        /**
         * Where to redirect users after registration.
         *
         * @var string
         */
        protected $redirectTo = '/home';
    
        /**
         * Create a new controller instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->middleware('guest');
        }
    	/**
    	* @param Request $request
    	* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
    	*/
    	
    	public function register( Request $request)
        {
            $this->validator($request->all())->validate();
    
            event(new Registered($user = $this->create($request->all())));
    
            $this->guard()->login($user);
    
            return $this->registered($request, $user)
                            ?: redirect($this->redirectPath());
        }
        /**
         * Get a validator for an incoming registration request.
         *
         * @param  array  $data
         * @return \Illuminate\Contracts\Validation\Validator
         */
        protected function validator(array $data)
        {
            return Validator::make($data, [
                'email' => 'required|string|email|max:255|unique:users',
                'password' => 'required|string|min:6|confirmed',
            ]);
        }
    
        /**
         * Create a new user instance after a valid registration.
         *
         * @param  array  $data
         * @return \App\User
         */
        protected function create(array $data)
        {
            return User::create([
                'name' => $data['name'],
                'email' => $data['email'],
                'password' => bcrypt($data['password']),
            ]);
        }
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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