使用Laravel 4的足智多谋的控制器进行POST-ing数据不起作用(存储方法),但使用索引(GET)方法工作。我做错了什么?



嗨,我有一个资源控制器在Laravel 4。它拥有所有由artisan控制器生成的默认方法:make.

模型等就位。

用户单击视图中的链接,该链接执行URL::route到指向控制器操作的命名路由。它指向控制器中的'store()'方法,这意味着是一个POST方法。

我在'store()'方法中编写代码来处理此请求。它使用eloquent将数据插入到数据库中。它返回一个纯文本响应,HTTP代码为200。

当用户单击上面提到的链接(指向store()方法)时,浏览器似乎只是跳转到该控制器的索引(GET),代码不会运行,因为绕过了store()方法。

当我将store()方法中的所有代码移动到index()方法中时,一切都如预期的那样工作。

我做错了什么,我的'store()'方法不处理我的代码。即使直接使用URL::action创建指向商店操作的URL,也会失败。

谁能给我开导一下吗?

代码:

存储方法:

public function store()
    {
        $itemsArray = Session::get('sdata');
            $cartItem = new Cart;
            $cartItem->session_id = Session::get('sid');
            $cartItem->items = json_encode($itemsArray);
            $cartItem->save();
    return Response::make('an item was added to carts', 200);      
}

视图:<a href="{{ URL::route('shop.cart.store') }}">Go</a>

这个视图也有相同的结果:

     `<a href="{{ URL::action('RelevantController@store') }}">Go</a>`

这是因为<a>标签,只能发送GET请求。尝试创建一个新方法,例如addToCart,然后在routes.php

中设置新的路由

最新更新