【问题标题】:Getting NotFoundHttpException in RouteCollection.php in Laravel 5在 Laravel 5 的 RouteCollection.php 中获取 NotFoundHttpException
【发布时间】:2015-11-10 22:53:40
【问题描述】:

我正在尝试 Laravel/刚刚开始/我被困在 NotFoundHttpException 上。 Ithin 我已经确认了我所读到的所有内容,但我可能在某个地方犯了错误。我会很感激任何提示。我当前工作区的一部分:
routes.php

<?php
// Controllers
Route::controller('auth', 'Auth\AuthController');

Route::get('/', ['middleware' => 'auth', 'uses' => 'HomeController@index']);

// route to show the login form
Route::get('auth/login', array('uses' => 'HomeController@showLogin'));

// route to process the form
Route::post('auth/login', array('uses' => 'HomeController@doLogin'));

HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Auth;
use App\Article;
use App\PhotoAlbum;
use DB;

class HomeController extends Controller {

    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard to the user.
     *
     * @return Response
     */
    public function index() {
        return view ( 'pages.home' );
    }
    public function showLogin() {
        // show the form
        return view( 'auth.login' );
    }
    public function doLogin() {
        // validate the info, create rules for the inputs
        $rules = array (
                'email' => 'required|email', // make sure the email is an actual email
                'password' => 'required|alphaNum|min:3' 
        ) // password can only be alphanumeric and has to be greater than 3 characters
;

        // run the validation rules on the inputs from the form
        $validator = Validator::make ( Input::all (), $rules );

        // if the validator fails, redirect back to the form
        if ($validator->fails ()) {
            return Redirect::to ( 'auth.login' )->withErrors ( $validator )-> // send back all errors to the login form
withInput ( Input::except ( 'password' ) ); // send back the input (not the password) so that we can repopulate the form
        } else {

            // create our user data for the authentication
            $userdata = array (
                    'email' => Input::get ( 'email' ),
                    'password' => Input::get ( 'password' ) 
            );

            // attempt to do the login
            if (Auth::attempt ( $userdata )) {

                // validation successful!
                // redirect them to the secure section or whatever
                // return Redirect::to('secure');
                // for now we'll just echo success (even though echoing in a controller is bad)
                echo 'SUCCESS!';
            } else {

                // validation not successful, send back to form
                return Redirect::to ( 'auth.login' );
            }
        }
    }
}  

home.blade.php

@extends('master')
@section('title') Home :: @parent @stop
@section('maphead')
    @include('partials.maphead')        
@endsection
@stop

@section('sidebarhead')
    @include('partials.sidebarhead')
@endsection
@stop

@section('nav')
    @include('partials.nav')
@endsection
@stop  

@section('content')
<!-- Page Content -->
            <div class="container-fluid">
                <div class="row">
                    <div class="col-lg-12">
                        <div id="map"></div>
                    </div>
                </div>
            </div>
<!-- /#page-content-wrapper -->

@endsection
@stop

@section('footer')    
    @include('partials.footer')
@endsection
@stop  

@section('mapinitialize')
    @include('partials.mapinitialize')
@endsection
@stop

结构

登录正常,但登录后 - RouteCollection.php 中的 NotFoundHttpException
它引导我到 public/login 而不是 public/home
提前致谢!

编辑 - 添加日志

[2015-11-10 09:09:55] local.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php:161
Stack trace:
#0 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Routing\Router.php(746): Illuminate\Routing\RouteCollection->match(Object(Illuminate\Http\Request))
#1 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Routing\Router.php(655): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#2 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Routing\Router.php(631): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#3 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(236): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#4 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#5 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(139): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#6 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#7 [internal function]: Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#8 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#9 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#10 [internal function]: Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#11 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#12 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#13 [internal function]: Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#14 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#15 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#16 [internal function]: Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#17 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#18 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php(59): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#19 [internal function]: Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#20 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#21 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(42): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#22 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#23 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#24 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#26 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(122): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#27 D:\Dev\Cloud\OneDrive\Projects\GH\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(87): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#28 D:\Dev\Cloud\OneDrive\Projects\GH\public\index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#29 {main}  

【问题讨论】:

  • 你的异常堆栈跟踪告诉你什么?
  • 我已将异常日志添加到我的问题中。

标签: php laravel-5


【解决方案1】:

在 doLogin() 方法中,您将 dot notation 用于 Redirect::to。改为使用:

Redirect::to('auth/login')

【讨论】:

  • 您好,谢谢。我已将Redirect::to('auth.login') 更改为Redirect::to('auth/login'),但响应相同。
【解决方案2】:

当然,这是我的一个简单错误。 在我的 login.blade.php 中,表单目标是 login 而不是 /auth/login 例如:

{!! Form::open(array('url' => 'login')) !!}

【讨论】:

    猜你喜欢
    • 2015-10-17
    • 1970-01-01
    • 2017-10-10
    • 2017-01-10
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多