Laravel5.7使用Route:match的路由不起作用

时间:2019-02-05 07:47:55

标签: laravel laravel-5 login laravel-routing

我正在使用Laravel 5.7,正在尝试路由我的函数进行获取和发布。 我想加载视图并发布表单。 我研究过

Route::match(['GET','POST'], '/', TestController@test);
Route::any('/', TestController@test);`

其中之一应该起作用。

但是它对我不起作用,还有其他方法还是我做错了什么?

  

更新

路由到管理员:

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>

3 个答案:

答案 0 :(得分:3)

您可以尝试更改

Route::match(['GET','POST'], '/', TestController@test);

Route::match(['GET','POST'], '/', 'TestController@test');

OR

Route::any('/', TestController@test);

Route::any('/', 'TestController@test');

第二个参数应该用引号引起来!

更新:

您的路线匹配代码应如下所示:

Route::match(array('GET', 'POST', 'PUT'), "/", array(
    'uses' => 'Controller@index',
    'as' => 'index'
));

答案 1 :(得分:1)

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);

这是匹配函数参数列表

  

参数一方法列表:例如:get,post,put,patch

     

第二个网址:例如:/ testMethods

     

参数3方法:例如:TestController @ test

Route::match(['get', 'post'], '/testMethods','TestController@test');

答案 2 :(得分:0)

好吧,最后我了解如何使用route::match,我应该指定没有它的函数名,否则将不起作用。因此,当我将其更改为Route::match(array('GET', 'POST', 'PUT'), "/login", array( 'uses' => 'AdminController@login', 'as' => 'login' ));时 它解决了问题。谢谢大家的帮助!