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

Web*_*evB 0 php laravel laravel-4

再次学习者.

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

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

最好只使用会话吗?

Ant*_*iro 9

控制器应该只接收请求,将它们传递给数据存储库(或模型),获取结果并通过视图或一组视图将它们传递给用户,或者最多将用户重定向到传递一些数据的新路由.它.

这就是MVC的工作方式.

因此,您不应该让控制器与另一个控制器通信,在它们之间传递值,因为唯一能够触发控制器的东西是命中路由并且每个请求只会发生一次.

这样,您将永远不会在同一请求中创建和运行两个控制器.

但是,如果您需要将数据保留为多个请求,则可以选择以下选项:

请求/重定向/输入

Input::flash();
Run Code Online (Sandbox Code Playgroud)

要么

return Redirect::action('YourNewController@action')->withInput();
Run Code Online (Sandbox Code Playgroud)

并进入下一个请求

会议

Session::put('key', 'value');
Run Code Online (Sandbox Code Playgroud)

并进入下一个请求

Session::get('key', 'defaultValue');
Run Code Online (Sandbox Code Playgroud)

饼干

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

return  $response->withCookie(Cookie::make('name', 'value', $minutes));
Run Code Online (Sandbox Code Playgroud)

并在下一个请求中获取它

$value = Cookie::get('name');
Run Code Online (Sandbox Code Playgroud)

数据库

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