Laravel将对象传递给其他方法

时间:2015-07-03 07:55:35

标签: php laravel

我使用Laravel创建复杂的注册表单。现在我想在整个过程中使用公司对象

我目前正在构造函数中创建一个新的Company对象,如下所示:

public function __construct()
{
    $this->company = new Company();
}

然后我用API中的数据填充对象。

但是每当我点击一个新的方法或路线时,该对象都会返回null。

我没有看到任何其他方式来解决这个问题?有什么想法吗? 谢谢!

以下是

return redirect()->route('register.contacts')->with('company', $company);

并在联系方式

public function contacts()
{

    Session::get('company'));
}

1 个答案:

答案 0 :(得分:4)

坚持有效的方法,没有更好的选择。您必须意识到PHP应用程序是基于请求的。每次请求后,内存中的所有数据都将丢失。您只保留存储在数据库,会话或文件系统中的内容。

此外,当您重定向到另一个路线时,您不会调用另一个控制器方法。您向客户端发送一个响应,告诉他下一个请求应该到达哪个URL。然后浏览器调用该路由。这些请求是完全分离的,因此传递数据的唯一方法是在URL中(对于完整对象不能很好地工作)或以某种方式将其存储在服务器上并在后续请求中再次加载该数据。

为了完整起见,这里有两种选择:

  • 将尚未完成的模型保存到数据库中。虽然
  • ,但要避免“尸体记录”
  • 将您的注册流程更改为客户端完成并一次性发送到服务器。