Laravel 4路线

时间:2013-07-30 17:25:39

标签: laravel laravel-4

我在使用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。任何提示?

1 个答案:

答案 0 :(得分:1)

在我的示例中,我使用GET请求方法(例如,在提交表单时使用POST)来捕获此操作。 我在reqeust网址中传递了我想要删除的客户端的ID,这会在此格式中生成网址:http://localhost:8888/k/public/admin/client/delete/1(您应该根据您的示例/请求从表单发布)。

不为您发布整个解决方案,迫使您学习!我的回答与你的情况不完全相同,但肯定会有所帮助。

// 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>