将表单数据数组从一个函数传递到同一控制器中的另一个函数

时间:2019-05-22 10:10:41

标签: php arrays laravel function

我有一个包含来自表单的数据的多维数组,我需要在同一控制器中的另一个Controller中继续使用此数组,但是我不知道该怎么做。

该数组可能类似于以下示例:

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方法中创建的(并验证了输入数据)。
此方法将返回一个视图,在此视图中将再次显示所有这些数据,以便用户检查信息,然后可以添加文档。

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

在这里,我需要带有表单数据的数组来继续使用它。

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

第一种方法是将数组保存到会话中,即使由于多维而很难,它也可以工作。但这是一个非常丑陋的解决方案。

我应该使用store方法将输入数据保存到数据库中,然后使用upload方法再次获取数据吗?

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

我也听说过有关使用serialize()unserialize()的事情,但是我不确定这对我有什么帮助。

或者也许我没有想到另外一个甚至更好的解决方案? 我将不胜感激。

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

1 个答案:

答案 0 :(得分:1)

您可以将其存储在cache中:

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