我是 Laravel 的初学者。我创建了一个简单的博客。在列出管理员帖子的页面中,我放置了一个delete
链接,其中包含作为参数附加的帖子 ID。
这个链接指向一个名为 的动作deletePost
,只是写了它的声明而已。
每当我访问该路线public/admin/post
时,我都会收到以下消息:
未知操作 [PostController@deletePost]。
这是我的控制器类:
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;
}
}
我的路线:
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('/', "PostController@listPosts");
Route::get('add', function(){ return View::make('admin.post.add'); });
Route::post('add', "PostController@addPost");
});
});
最后是产生此错误的视图:
@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('PostController@deletePost', array('id' => $post->id)) }}">Delete</a>
@endforeach
@endif
<a href="{{ url('admin/') }}">Back</a>
@stop