Je suis un débutant à Laravel. J'ai créé un blog simple. Dans la page qui répertorie les messages pour l'administrateur, j'ai mis un lien delete
avec l'id de poste ci-joint en tant que paramètre.Action inconnue [PostController @ deletePost] en utilisant URL :: action() dans Laravel4
Ce lien est à une action appelée deletePost
, vient d'écrire sa déclaration rien de plus.
Chaque fois que je avoir accès à la route public/admin/post
, je reçois ce message:
Action inconnue [PostController @ deletePost].
Voilà ma classe de contrôleur:
class PostController extends BaseController {
public function listPosts(){
$posts = Post::all();
return View::make('admin.post.list')->with('posts' , $posts);
}
public function addPost(){
$data = Input::all();
$rules = array(
'title' => 'required|min:3',
'body' => 'required|min:10',
);
$validator = Validator::make($data, $rules);
if($validator->passes()){
$post = new Post();
$post->title = htmlentities(trim($data['title']));
$post->body = strip_tags($data['body'], '<strong><pre>');
$post->save();
return View::make('admin.post.add')->with('message' , 'Post successfuly added.');
} else {
return Redirect::to('admin/post/add')->withErrors($validator);
}
}
public function deletePost($id){
return $id;
}
}
Et mes routes:
Route::group(array('prefix' => 'admin'), function(){
Route::get('/' , function(){
return View::make('admin.main')->with('title', 'Main');
});
Route::group(array('prefix' => 'post'), function(){
Route::get('/', "[email protected]");
Route::get('add', function(){ return View::make('admin.post.add'); });
Route::post('add', "[email protected]");
});
});
Et enfin la vue qui produit cette erreur:
@extends('layout.layout')
@section('header')
@stop
@section('content')
<h2>Main - Admin - Post Main menu</h2>
<ul>
<li><a href="{{ url('admin/post/add') }}">Add</a></li>
</ul>
@if(isset($posts))
@foreach($posts as $post)
<p>{{ $post->body }}</p>
<a href="{{ action('[email protected]', array('id' => $post->id)) }}">Delete</a>
@endforeach
@endif
<a href="{{ url('admin/') }}">Back</a>
@stop
Vous n'avez pas créé un itinéraire pour une action deletePost –