2016-12-05 6 views
0

Привет, я новичок в laravel и застрял. в моем приложении есть три типа пользователей. их данные для входа хранятся в одной таблице (таблица пользователей, сгенерированная с помощью auth), с символом для определения типа пользователя. То, что я хочу сделать, - это когда они входят в систему, перенаправляют их на соответствующую страницу со своим user_id (полученным из таблицы пользователей) на url. Bottomline, я хочу, чтобы получить URL, какПеренаправление с параметрами laravel 5.3 | InvalidArgumentException в строке Response.php 462

локального хоста: 8000/ESProfile/15

где значение 15 является user_id таблицы. Что я сделал до сих пор, ниже.

В AuthenticatesUsers.php (автогенерируемая от ремесленника AUTH)

protected function authenticated(Request $request, $user) 
{ 
    $userId = $user->id; 
    if($user->type === 's') { 
     return redirect('ESProfile', $userId); 
    } 
    else if($user->type === 'p') { 
     return redirect('/ePProfile'); 
    } 
    else if($user->type === 'i') { 
     return redirect('/ePDashboard'); 
    } 
} 

В web.php

Route::get('ESProfile/{id}', function($id){ return view('ESeeker.details')->with('$id'); }); 

, когда я пытаюсь войти, он дает

InvalidArgumentException in UrlGenerator.php line 314: Route [ESProfile] not defined. ошибка.

вместе с

in UrlGenerator.php line 314 
at UrlGenerator->route('ESProfile', array('15'), true) in helpers.php line 692 
at route('ESProfile', array('15')) in AuthenticatesUsers.php line 123 
at LoginController->authenticated(object(Request), object(User)) in AuthenticatesUsers.php line 107 
at LoginController->sendLoginResponse(object(Request)) in AuthenticatesUsers.php line 46 
at LoginController->login(object(Request)) 
at call_user_func_array(array(object(LoginController), 'login'), array(object(Request))) in Controller.php line 55 
at Controller->callAction('login', array(object(Request))) in ControllerDispatcher.php line 44 
at ControllerDispatcher->dispatch(object(Route), object(LoginController), 'login') in Route.php line 190 
at Route->runController() in Route.php line 144 
at Route->run(object(Request)) in Router.php line 642 
at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in RedirectIfAuthenticated.php line 24 
at RedirectIfAuthenticated->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41 
at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65 
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64 
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59 
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104 
at Pipeline->then(object(Closure)) in Router.php line 644 
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 618 
at Router->dispatchToRoute(object(Request)) in Router.php line 596 
at Router->dispatch(object(Request)) in Kernel.php line 267 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104 
at Pipeline->then(object(Closure)) in Kernel.php line 149 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116 
at Kernel->handle(object(Request)) in index.php line 54 
at require_once('C:\xampp\htdocs\Project\public\index.php') in server.php line 21 

Спасибо заранее.

ответ

0

После многих испытаний был найден мой ответ.

В RegistersUsers.php (автогенерируемая файл из PHP ремесленника выпуска: авт)

public function register(Request $request){ 

    $this->validator($request->all())->validate(); 

    event(new Registered($user = $this->create($request->all()))); 

    $this->guard()->login($user); 
    $user = $request -> user(); 
     if(($user->type) == 's'){ 
      return $this->registered($request, $user)?: redirect()-> intended('/addPreferences/ESId='.$user->id); 
     } 
     if(($user->type) == 'p'){ 
      return $this->registered($request, $user)?: redirect()-> intended('/ePProfile/epID='.$user->id); 
     } 
    } 

добавления требуемый путь с предназначен метод сделал трюк. Благодарю. (особое спасибо iCode)

0

На ваш взгляд, необходимо использовать следующий код

route('ESProfile', ['id' => $id]) 

, который, очевидно, не потому, что вы не определили ESProfile в любом месте.

Изменение маршрута следованию wrok:

Route::get('ESProfile/{id}', function($id) { 
    return view('ESeeker.details')->with('$id'); 
})->name('ESProfile'); 

Проверьте документацию для named routes.

+0

Привет iCode для ответа. Я не использовал ничего подобного в представлении. в представлении, когда данные отправляются, контроллер проверяет auth, и если это точные проверки для значения char, а затем возвращает идентификатор соответствующей записи, а мой код дает «Код статуса HTTP« 15 »недействителен.' где 15 - идентификатор зарегистрированного пользователя. Все, что я хочу, - это получить URL-адрес как «localhost: 8000/ESProfile/15». Я не могу просто понять это. – 14k