[laravel 4]重定向到另一个控制器's方法,返回视图


[laravel 4 ]Redirect to another controller's method, where do i return the view?

这里是关于最佳实践的,我的操作路由到控制器的方法:

Route::get('/admin',array('before' => 'auth', 'uses' => 'PostController@create' ));

In PostController@create:

public function create(){
// Querying Model
 return Redirect::action('PictureController@index');
}

因为我需要,显示表单创建一个帖子,得到所有的图片存储在数据库中(这是服务器上的一个文件,位于一个'url'字段在图片数据库表),所以管理员可以为他的帖子选择一个图片。

所以在PictureController的index方法结束时,我可以返回我需要的所有数据的视图,所以我的问题是:

是否有一种方法可以将视图响应从路由中分离出来,例如在我路由到我的几个控制器的动作后使用闭包,或者我必须在执行中最后调用的方法中返回视图?

很抱歉我的英语不好,希望我的问题足够清楚。

你可以创建一个这样的过滤器:

Route::filter('name_of_filter', function($response, $type = 'html')
{
    //do your magic
});

filters.php中做一些处理之后的所有控制器的工作。

在你的路由中,使用Route::get/('/admin', array('after' => 'name_of_filter', 'uses' => ...))在你的请求的末尾应用这个过滤器