在我的route.php中我有:
Route::group(array('prefix'=>'admin'),function(){
Route::resource('products','AdminProductsController');
});
但是当我执行STORE
函数时,它会抛出一个MethodNotAllowedHttpException
,但它适用于所有GET
函数。
我的表单action
的值为{{ URL::to('admin/products/store') }}
。
AdminProductsController.php位于controller/admin
目录。
请帮忙。
控制器:
<?php
class AdminProductsController extends BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
return 'Yow';
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
$url = URL::to('admin/products/store');
return<<<qaz
<form method="post" action="{$url}">
<input type="hidden" name="hehehe" value="dfsgg" />
<input type="submit" />
</form>
qaz;
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
return 'whahaha';
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
return $id;
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
return $id;
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}
}
答案 0 :(得分:1)
诀窍在于你的例子中使用的路线。
试试这个
<form method="post" action="{{ URL::route('admin.products.store') }}">
现在你应该好好去!
建议:看看Laravel中的url / actions / named路由 - 可能很有用。
答案 1 :(得分:0)
从Laravel docs开始,store
操作通过Controller的根路径访问(在您的情况下为/admin/products
),但由POST
动词触发,而不是GET
,它会触发index
操作。
换句话说,如果您在$url
操作中将action
设置为表单create()
:
public function create()
{
$url = URL::to('admin/products');
return<<<qaz
<form method="post" action="{$url}">
<input type="hidden" name="hehehe" value="dfsgg" />
<input type="submit" />
</form>
qaz;
}
那就应该工作。 :)
查看上面该链接中Verb | Path | Action | Route Name
的表格了解详情。 path
列显示了您可以访问操作的位置。