Laravel по-русски

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

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

#1 04.10.2017 00:49:40

Viktor92
Откуда: Москва
Сообщений: 26

Как переопределить Редирект в Регистрации ?

Всем Добрый День. Смог в Логине переопредилить редирект со странице home на id пользователя. Но в регестрации не получается переопределить Редирект на другой Роут. Прошу помощи , пытался разными способами в том числе и в RedirectIfAuthenticated.php. Но зато редиект с логина работает.
LoginController.php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */

    //protected $redirectTo = '/id';//.Auth::user()->id;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function redirectTo(){
        return '/home';//.//Auth::user()->id;
        //die(print_r(Auth::user()));
    }
       public function authenticated($request,$user)
    {
        return redirect('/id' . $user->id);
    }
    public function __construct()
    {
        $this->middleware('guest', ['except' => 'logout']);
    }
}

RegisterController.php

namespace App\Http\Controllers\Auth;

use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\RegistersUsers;
use  Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
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
     */
public function redirectTo(){
        return '/id{id}', 'ProfilesController@index');//.//Auth::user()->id;
        //die(print_r(Auth::user()));
}
public function RegistersUsers($request,$user)
    {
     return redirect('/id' . $user->id);   
   
    }


    /**
     * Create a new controller instance.
     *
     * @return void
     */
     
    public function __construct()
    {
        $this->middleware('guest');
    }

    /**
     * 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, [
            'name' => 'required|max:255|unique:users',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:6|confirmed',
            'gender' => 'required|string',
           
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        if($data['gender'])
        {
            $avatar = 'public/defaults/avatars/male.jpg';
        }
        else
        {
            $avatar = 'public/defaults/avatars/female.png';
        }
             return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'gender' => $data['gender'],
            'password' => bcrypt($data['password']),
            'slug' => str_slug($data['name']),
            'avatar' => $avatar
           
     

        ]);
Profile::create(['user_id' => $user->id ]);
        return $user;
    }
}

RedirectIfAuthenticated.php

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
       public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::check()) {
            return redirect()->action('ProfilesController@index', Auth::user()->id);
        }
        return $next($request);
    }
/*    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect('/id'.Auth::user()->id);
        }

        return $next($request);
    }*/
}

Не в сети

#2 04.10.2017 10:47:15

Re: Как переопределить Редирект в Регистрации ?

redirectTo() должен работать в последних версиях. Только он должен возвращать путь, что-то вроде:

return '/profile/'.auth()->id();

У тебя этот метод не выполняется или проблема в чем-то другом?

Изменено AlexeyMezenin (04.10.2017 10:50:03)

Не в сети

#3 05.10.2017 03:35:41

Viktor92
Откуда: Москва
Сообщений: 26

Re: Как переопределить Редирект в Регистрации ?

AlexeyMezenin пробывал по разному не получается(( С логина редиректит а регистрации нет.

Не в сети

#4 05.10.2017 03:35:56

Viktor92
Откуда: Москва
Сообщений: 26

Re: Как переопределить Редирект в Регистрации ?

Версия 5.3 Лары

Не в сети

#5 05.10.2017 03:41:07

Viktor92
Откуда: Москва
Сообщений: 26

Re: Как переопределить Редирект в Регистрации ?

Ошибка обычно такая.
ErrorException in RegisterController.php line 32: Undefined variable: user а с логином работает(

Не в сети

#6 05.10.2017 03:46:40

Viktor92
Откуда: Москва
Сообщений: 26

Re: Как переопределить Редирект в Регистрации ?

AlexeyMezenin  Спасибо большое у меня всё заработало ,когда  ввёл   return '/id'.auth()->id();
Видимо неправильно синтаксировал писал обычно так - Auth::user()->id  надо было просто немного исправить.Спасибо что не оставили в беде.

Не в сети

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