2

在我的 route.php 中,我有:

Route::group(array('prefix'=>'admin'),function(){
     Route::resource('products','AdminProductsController');
});

但是当我执行STORE一个 POST 函数时,它会抛出一个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)
{
    //
}

}
4

2 回答 2

1

诀窍在于您的示例中使用的路线。

尝试这个

<form method="post" action="{{ URL::route('admin.products.store') }}">

现在你应该好好去!

建议:查看 Laravel 中的 url/actions/named routes - 可能有用。

于 2013-08-06T08:07:44.600 回答
0

Laravel 文档中,store操作是通过控制器的根路径(在您的情况下/admin/products)访问的,但由触发操作的POST动词而不是GET触发index

换句话说,如果您在操作中更新$url您正在设置的表单:actioncreate()

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列显示您可以访问操作的位置。

于 2013-08-06T02:27:17.773 回答