2013-07-30 3 views
0

J'ai un problème avec l'utilisation de URL :: route. Il y a une fonction publique dans mon contrôleur appelé AuthController appelé delete_character, voici à quoi il ressemble:Laravel 4 route

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

Aussi, j'ai créé un itinéraire nommé:

Route::post('delete_character', array(
      'as' => 'delete_character', 
      'uses' => '[email protected]_character' 
     )); 

Tout ce que je veux faire est d'exécuter le $player->delete. Je ne veux pas que ce soit un site, juste quand je clique sur un bouton, ça va supprimer le lecteur. J'ai aussi fait le bouton:

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

Mais je reçois constamment MethodNotAllowedHttpException. Des indices?

Répondre

1

Dans mon exemple, j'utilise la méthode de requête GET (POST est utilisé lorsque le formulaire est en cours de soumission, par exemple) pour capturer cette action. Je passe l'ID du client que je souhaite supprimer dans l'URL de reqeust, ce qui donne l'URL sous cette forme: http://localhost:8888/k/public/admin/client/delete/1 (Vous devriez le poster du formulaire, selon votre exemple/demande).

Vous n'avez pas affiché de solution complète pour vous forcer à apprendre! Ma réponse n'est pas à 100% identique à votre situation, mais va certainement aider.

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

Merci, c'est beaucoup compréhensible maintenant. Mais comment pourrais-je trouver les joueurs/clients id? J'ai un compte, et dans le compte il y a des joueurs. Ils sont séparés et chaque joueur a un identifiant de compte. Donc, je suis confus en ce moment .. – dinomuharemagic

+0

J'ai ajouté le code utilisé pour générer le lien 'delete' à l'action du contrôleur – Andreyco

+0

Eh bien, je suis coincé à nouveau. J'ai essayé d'utiliser quelque chose comme ceci: '$ player = Player :: findOrFail ($ player-> id);', a également essayé d'utiliser quelque chose comme '$ id = $ player-> id;', mais cela ne fonctionne toujours pas. Comment est défini l'identifiant? – dinomuharemagic