我已经研究过这个类似问题的所有先前答案,但我找不到任何答案。
我只是访问我自定义的功能
路线
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',
]);
答案 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"
}
}