0

URL::route の使用に問題があります。私のコントローラーには、delete_character と呼ばれる AuthController というパブリック関数があります。

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 に答える