1

嗨,我在Laravel 4中有一个资源控制器。它具有工匠控制器生成的所有默认方法: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>`
4

1 回答 1

0

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

于 2013-05-29T16:58:59.820 回答