Laravel5.7 使用 Route:match 的路由不起作用
Laravel5.7 routing using Route:match not working
我正在使用 Laravel 5.7 我正在尝试为 get 和 post 路由我的函数。
我想加载一个视图和 post 一个表单。
据我研究
Route::match(['GET','POST'], '/', TestController@test);
Route::any('/', TestController@test);`
其中一个应该有效。
但是对我不起作用,有没有其他方法或者我做错了什么?
UPDATE
路由到管理员:
Route::match(['get','post'], 'cp/', 'AdminController@test');
管理控制器中的函数:
public function test( Request $request){
$data=array();
if ($request->isMethod('POST')) {
echo "here it is";
exit;
}else{
echo "still in get!";
}
return view('admin/login', $data);
}
简而言之,我的观点是这样的:
<form action="{{ url('/cp') }}" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<form>
在你身上试试这个web.php
Route::match(['get', 'post'], '/testMethods', function ()
{
dd('its workong bro');
});
然后在网络浏览器中点击 yourprojectname/testMethods
例如:http://localhost:8000/testMethods
来自Illuminate\Contracts\Routing\Registrar.php
public function match($methods, $uri, $action);
这里是匹配函数参数列表
Parameter One List of methods: Eg: get,post,put,patch
Parameter two url : Eg: /testMethods
Parameter three Method: Eg: TestController@test
Route::match(['get', 'post'], '/testMethods','TestController@test');
你可以尝试改变
Route::match(['GET','POST'], '/', TestController@test);
到
Route::match(['GET','POST'], '/', 'TestController@test');
或
Route::any('/', TestController@test);
到
Route::any('/', 'TestController@test');
第二个参数应该用引号引起来!
更新:
您的路由匹配代码应该是这样的:
Route::match(array('GET', 'POST', 'PUT'), "/", array(
'uses' => 'Controller@index',
'as' => 'index'
));
好吧,到最后我明白如何使用 route::match
我应该指定没有它的函数名称它不会 work.So 当我将它更改为 Route::match(array('GET', 'POST', 'PUT'), "/login", array(
'uses' => 'AdminController@login',
'as' => 'login'
));
它解决了这个问题。谢谢大家的帮助!!
我正在使用 Laravel 5.7 我正在尝试为 get 和 post 路由我的函数。 我想加载一个视图和 post 一个表单。 据我研究
Route::match(['GET','POST'], '/', TestController@test);
Route::any('/', TestController@test);`
其中一个应该有效。
但是对我不起作用,有没有其他方法或者我做错了什么?
UPDATE
路由到管理员:
Route::match(['get','post'], 'cp/', 'AdminController@test');
管理控制器中的函数:
public function test( Request $request){
$data=array();
if ($request->isMethod('POST')) {
echo "here it is";
exit;
}else{
echo "still in get!";
}
return view('admin/login', $data);
}
简而言之,我的观点是这样的:
<form action="{{ url('/cp') }}" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<form>
在你身上试试这个web.php
Route::match(['get', 'post'], '/testMethods', function ()
{
dd('its workong bro');
});
然后在网络浏览器中点击 yourprojectname/testMethods
例如:http://localhost:8000/testMethods
来自Illuminate\Contracts\Routing\Registrar.php
public function match($methods, $uri, $action);
这里是匹配函数参数列表
Parameter One List of methods: Eg: get,post,put,patch
Parameter two url : Eg: /testMethods
Parameter three Method: Eg: TestController@test
Route::match(['get', 'post'], '/testMethods','TestController@test');
你可以尝试改变
Route::match(['GET','POST'], '/', TestController@test);
到
Route::match(['GET','POST'], '/', 'TestController@test');
或
Route::any('/', TestController@test);
到
Route::any('/', 'TestController@test');
第二个参数应该用引号引起来!
更新:
您的路由匹配代码应该是这样的:
Route::match(array('GET', 'POST', 'PUT'), "/", array(
'uses' => 'Controller@index',
'as' => 'index'
));
好吧,到最后我明白如何使用 route::match
我应该指定没有它的函数名称它不会 work.So 当我将它更改为 Route::match(array('GET', 'POST', 'PUT'), "/login", array(
'uses' => 'AdminController@login',
'as' => 'login'
));
它解决了这个问题。谢谢大家的帮助!!