2013-07-30 4 views
0

У меня проблема с использованием URL :: route. Существует публичная функция в мой контроллер называется AuthController называется delete_character, вот как это выглядит:Laravel 4 route

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' => '[email protected]_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

В моем примере, я использую метод запроса GET (POST используется, когда форма отправляется, например), чтобы зафиксировать это действие. Я передаю идентификатор клиента, который я хочу удалить в URL-адресе reqeust, который выводится в URL-адрес в этой форме: http://localhost:8888/k/public/admin/client/delete/1 (вы должны опубликовать его из формы в соответствии с вашим примером/запросом).

Не отправляйте все решение для вас, чтобы заставить вас учиться! Мой ответ не на 100% идентичен вашей ситуации, но поможет, конечно.

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

// 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\\[email protected]', ['id' => $client->id]) }}">delete</a> 
+0

Спасибо, теперь это понятно. Но как я могу найти идентификатор игроков/клиентов? У меня есть учетная запись, и на счету есть игроки. Они разделены, и каждый игрок имеет соответствующий account_id. Так что я запутался прямо сейчас. – dinomuharemagic

+0

Я добавил код, используемый для создания ссылки «delete» на действие контроллера – Andreyco

+0

Ну, я снова застрял. Я попытался использовать что-то вроде этого: '$ player = Player :: findOrFail ($ player-> id);', также пытался использовать что-то вроде '$ id = $ player-> id;', но он все равно не работает. Как определяется идентификатор? – dinomuharemagic

Смежные вопросы