发布请求时notfoundhttp异常

时间:2017-10-05 10:28:09

标签: php laravel-5.1

我已经研究过这个类似问题的所有先前答案,但我找不到任何答案。

我只是访问我自定义的功能

路线

Route::post('dashboard', 'Admin\UserController@index');

UserController.php

<?php
namespace App\Http\Controllers;

use DB;
use Session;
use App\Http\Requests;
use Illuminate\Http\Request;

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

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        echo "welcome"

    }
}

当我尝试这个时,它会抛出我

  

RouteCollection.php第161行中的NotFoundHttpException:

错误。 的更新

我的所有路线都是

Route::get('/', function () {
    return view('welcome');
});

// Authentication routes...
Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');

// Registration routes...
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');

// Dashboard routes
Route::post('dashboard', 'Admin\UserController@index');
Route::controllers([
   'password' => 'Auth\PasswordController',
]);

3 个答案:

答案 0 :(得分:0)

命名空间,您需要在控制器中添加Admin

namespace App\Http\Controllers\Admin;

由于您的路线中有管理员

Route::post('dashboard', 'Admin\UserController@index');

更新

根据您的评论,您将通过
访问 http://localhost/travelling/dashboard但如果您使用的是localhost,那么您必须添加公共

http://localhost/travelling/public/dashboard

另外请确保自POST后请求您无法直接从浏览器访问Url。您需要使用curl或html表单和csrf令牌

<强>更新 由于您在构造函数中添加了$this->middleware('auth');,因此您必须登录

答案 1 :(得分:0)

正如您在名称空间中提到的“未获取控制器路径”这一问题:

尝试使用此更改命名空间  namespace App\Http\Controllers\Admin;

您的路线将是这样的:Route::post('dashboard', 'UserController@index');

答案 2 :(得分:0)

在UserController中使用了

namespace App\Http\Controllers; 

与您使用的路线不一致。它应该是命名空间

App\Http\Controllers\Admin;

其次,如果您将仪表板的路线设为get:

,那将是正确的
Route::get('dashboard', 'Admin\UserController@index');

路线

Route::post('dashboard', 'Admin\UserController@index');

UserController.php

<?php
namespace App\Http\Controllers\Admin;

use DB;
use Session;
use App\Http\Requests;
use Illuminate\Http\Request;

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

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        echo "welcome"

    }
}