laravel get和post route之间的区别

2 php laravel laravel-routing laravel-5

我是laravel的初学者,我从codeigniter转移到laravel所以我没有路线的概念.任何人都可以告诉我在laravel 5中的post和get路线之间有什么区别.

基本GET路线

Route::get('/', function()
{
    return 'Hello World';
});
Run Code Online (Sandbox Code Playgroud)

基本的POST路由

Route::post('foo/bar', function()
{
     return 'Hello World';
});
Run Code Online (Sandbox Code Playgroud)

是他们的任何劣势或好处,或者如果我同时使用他们两个我何时应该使用他们两个当我在同一时间使用它们时将参数传递给他们会发生什么.

Route::match(['get', 'post'], '/', function()
{
    return 'Hello World';
});
Run Code Online (Sandbox Code Playgroud)

小智 7

这是HTTP协议的问题.简单地说,GET通常用于呈现/查看某些内容,而POST则用于更改内容.例如,当您为某些用户提取数据时,您使用GET方法,它看起来像这样:

Route::get('users/{id}', function($id) {
    $user = \App\User::find($id);

    echo "Name: " . $user->name . '<br>';
    echo "Email: " .  $user->email;
});
Run Code Online (Sandbox Code Playgroud)

使用POST方法时,您可以创建或更新用户数据(当用户提交表单时,您将POST请求发送到此路由):

Route::post('users', function() {
    try {
        \App\User::create([
            'name'      => \Input::get('name'),
            'email'     => \Input::get('email'),
            'password'  => bcrypt(\Input::get('password'))
        ]);

        return Redirect::intended('/');
    } catch(Exception $e) {
        return $e->getMessage();
    }
});
Run Code Online (Sandbox Code Playgroud)

这只是一个简单的例子,但我希望你能看到差异.