0

我在使用 URL::route 时遇到问题。我的控制器中有一个名为 AuthController 的公共函数,名为 delete_character,它的外观如下:

public function delete_character()
{
  $player->delete();
  return View::make('index')->with('danger', 'You have successfully deleted your character!');
}

另外,我创建了一个命名路线:

Route::post('delete_character', array(
           'as'   => 'delete_character', 
           'uses' => 'AuthController@delete_character'
          ));

我要做的就是执行$player->delete. 我不希望它成为一个站点,只是当我单击一个按钮时它会删除播放器。我也完成了按钮:

<td><a class="btn btn-mini btn-danger" href="{{ URL::route('delete_character') }}"><i class="icon-trash icon-white"></i> Delete</a></td>

但我不断得到MethodNotAllowedHttpException。有什么提示吗?

4

1 回答 1

1

在我的示例中,我使用GET请求方法(例如,在提交表单时使用 POST)来捕获此操作。我在请求 URL 中传递了我希望删除的客户端 ID,这会导致这种形式的 URL:(http://localhost:8888/k/public/admin/client/delete/1您应该根据您的示例/请求从表单中发布它)。

不为您发布完整的解决方案来强迫您学习!我的回答与您的情况并非 100% 相同,但肯定会有所帮助。

// routes.php
Route::group(['prefix' => 'admin'], function(){
    Route::get('client/delete/{id}', 'Admin\\ClientController@delete');
});

// ClientController.php
<?php

namespace Admin;

use Client;

class ClientController extends BaseController
{
    ...

    public function delete($clientId)
    {
        $client = Client::findOrFail($clientId);

        // $client->delete();

        // return Redirect::back();
    }

    ...

}

// view file, here you generate link to 'delete' action
<a href="{{ URL::action('Admin\\ClientController@delete', ['id' => $client->id]) }}">delete</a>
于 2013-07-30T17:51:39.057 回答