【问题标题】:Passing Form-data Array from one function to another function in same controller将表单数据数组从一个函数传递到同一控制器中的另一个函数
【发布时间】:2019-05-22 10:10:41
【问题描述】:

我有一个包含来自表单的数据的多维数组,我需要在同一控制器中的另一个控制器中使用此数组才能继续使用它,但我不知道我是如何做到的。

数组可能看起来像这个例子:

array [
    "absender" => "Maxim Ivan",
    "email" => "maximivan@example.com",
    "telefon" => "1234567890",
    "fax" => null,
    "grund" => "Gehaltserhöhung",
    "termin" => [
        0 => [
            "person" => "Some Name",
            "meeting" => "10.05"  
        ],
        1 => [
            "person" => "Another Name",
            "meeting" => "18.05"  
        ],
        2 => [
            "person" => "Again another name",
            "next-possible-meeting" => "1"  
        ],
        3 => [
            "person" => "And again",
            "next-possible-meeting" => "1"  
        ],
    ],
    "bemerkung" => "some notes by Maxim"
]

这个数组是在“TerminController”的store-方法中创建的(并验证了输入数据)。
此方法将返回一个视图,在该视图中再次显示所有这些数据,以让用户检查信息,然后可以添加文档。

当添加文档并使用输入按钮提交数据时,将调用同一控制器中的upload-方法。

我需要带有表单数据的数组才能继续使用它。

但是我如何实现将数组传递给仅通过输入按钮调用的下一个函数。

第一种方法是将数组保存到会话中,尽管由于多维而很难,但它确实有效;但这是一个非常丑陋的解决方案。

我应该将输入数据保存到store-方法中的数据库中并在upload-方法中再次获取吗?

或者是否有可能通过控制器传递数组/使其在upload-Controller 中可访问,即使它是在另一个控制器中创建的?

我也听说过使用serialize()unserialize(),但我不确定这对我有什么帮助..

或者也许还有其他更好的解决方案我只是没想到? 我会很感激我能得到的所有帮助。

数组各不相同,可以是嵌套在 'termin' 中的 17 个数组,但我也可以是一个。

【问题讨论】:

  • 我仍然认为 session 是要走的路。您正在处理的数据不必保留很长时间。否则,将其保存在数据库中。

标签: php arrays laravel function


【解决方案1】:

您可以将其存储在cache

Cache::put('multiArray', $multiArray); //put array in cache
$array = Cache::get('multiArray'); //retreive from cache

【讨论】:

  • 这种存储在session中是不是有点类似?
  • 还有另一种方法可以做到这一点
  • 1. json_encode 这个多维数组。 2.把这个json传给查看。 3. 将此带有输入类型hidden 的json 传递给您的upload 方法。 4. json_decode json 来取回你的数组
  • 我必须对其进行 json_encode 吗?输入类型隐藏时是否可以只传递数组?
  • 您可以使用 @foreach 重新创建此数组,并将输入类型隐藏在刀片中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
相关资源
最近更新 更多