嗨,我在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>`