Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем Добрый День. Смог в Логине переопредилить редирект со странице 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);
}*/
}
Не в сети
redirectTo() должен работать в последних версиях. Только он должен возвращать путь, что-то вроде:
return '/profile/'.auth()->id();
У тебя этот метод не выполняется или проблема в чем-то другом?
Изменено AlexeyMezenin (04.10.2017 10:50:03)
Не в сети
AlexeyMezenin пробывал по разному не получается(( С логина редиректит а регистрации нет.
Не в сети
Версия 5.3 Лары
Не в сети
Ошибка обычно такая.
ErrorException in RegisterController.php line 32: Undefined variable: user а с логином работает(
Не в сети
AlexeyMezenin Спасибо большое у меня всё заработало ,когда ввёл return '/id'.auth()->id();
Видимо неправильно синтаксировал писал обычно так - Auth::user()->id надо было просто немного исправить.Спасибо что не оставили в беде.
Не в сети
Страницы 1