Laravel 4在控制器之间传递变量

时间:2013-12-03 17:00:00

标签: php laravel laravel-4

再次学习。

我只是想知道在控制器之间传递变量的最佳方法是什么?

在codeingniter中,我们曾经通过form open命令传回隐藏变量,这在Laravel 4中是否可行?

最好只使用会话吗?

1 个答案:

答案 0 :(得分:9)

控制器应仅接收请求,将其传递到数据存储库(或模型),获取结果并通过查看<将其传递给用户/ strong>或一组视图,或者最多将用户重定向到将一些数据传递给它的新路由。

这就是MVC的工作方式。

所以,你不应该让一个控制器与另一个控制器通话,在它们之间传递值,因为唯一能够触发控制器的东西就是命中一个路由,每次请求只会发生一次。

这样你就不会在同一个请求中创建和运行两个控制器。

但是如果你需要让你的数据持续多个请求,你有一些选择:

请求/重定向/输入

Input::flash();

return Redirect::action('YourNewController@action')->withInput();

进入下一个请求

<强>会话

Session::put('key', 'value');

进入下一个请求

Session::get('key', 'defaultValue');

<强>缓存

$response = Response::make('Hello World');

return  $response->withCookie(Cookie::make('name', 'value', $minutes));

并在下一个请求中获取

$value = Cookie::get('name');

<强>数据库

只需将数据保存到数据库并在下一个请求中检索。