首页 > 解决方案 > 几种形式的逻辑,Laravel

问题描述

我仍在学习 Laravel,因为我目前要完成的是以下逻辑:

-用户提交表单->表单输入保存到数据库中,并“发送”给另一个可以验证它的用户->如果状态被验证,我保存到数据库中,并通知发送的用户表格。

我知道这并不太难,但我在学习 Laravel 时正在这样做,所以我想出了一些“问题”。

首先,我确实有很多表格,而且我确实让 Post 逻辑正常工作。目前我还没有使用数据库,所以我用 SESSION 测试了表单,以确保数据被保存。

所以我的第一个问题是:在这种情况下,将所有表单逻辑保存在一个控制器中是否是最佳实践?如下所示(这是使用两种不同的形式)(会话仅用于测试目的)

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PostController extends Controller
{

    public function geralSuggest(Request $request)
    {

        $name = $request->input('obs');

        return redirect('sugestoes');
    }

    public function GD(Request $request)
    {

        session_start();

        $name = $request->input('nome');
        $cc = $request->input('cartao');
        $array = array ($name, $cc);
        $_SESSION["testPostSection"] = $array;        

        return redirect('declaracaogd');   
    }
}

其次,我有一些表单,用户可以在其中添加输入。假设一个输入用于名称,并且用户有一个按钮,当他单击时,他会添加另一个名称输入,因此他可以一次输入多个名称。这是由我这边的 Javascript 完成的。我想知道我将如何保存这些输入,因为我“不知道”用户将提交多少个“名称”。我正在考虑一个 for 或 foreach 循环,我会在其中使用“isset”进行检查,但我不确定它是否会起作用。无论如何,当我遇到它时,我都会对此进行测试,并且我相信我会弄明白的,但是如果您对此有一个很好的逻辑并且可以为我指明正确的道路,我们将不胜感激。

最后,关于我的一般逻辑,对于用户验证,从我在 Laravel 文档上阅读的内容来看,我认为事件将是触发“警告”第二个用户他需要验证表单的触发器,对吗?

如果我“一次问太多”或者这些是非常基本的问题,我很抱歉。我只是想确保我朝着正确的方向前进。

提前致谢!

标签: phplaravelforms

解决方案


我不确定我是否 100% 正确理解了您的系统。但是您似乎正在尝试制作人工验证程序?因此,1 个用户提交数据,另一个用户验证此数据。在这种情况下,我会在 2 个单独的控制器中执行此操作。Laravel 对控制器的解释指出:“控制器可以将相关的请求处理逻辑分组到一个类中。” 提供数据或验证数据是两件不同的事情。但这不是一个严格的规则。

对于第二个问题。Laravel 有一个 all() 方法。$input = $request->all();会给你一个数组将所有请求数据。之后,您可以遍历数组并将其插入到数据库或您想要的存储方法中。

编辑:如果您可以有多个名称,另一种处理方法可能是:

// View
<input type="text" name="names[]">
<input type="text" name="names[]">

// Controller
$request->names; // This is an array of values

来源:https ://laracasts.com/discuss/channels/laravel/get-the-values-of-dynamically-generated-inputs

如果您想发送消息,事件确实是要走的路。因此,您可以在提交数据后立即触发事件。其中一位听众会发送一封电子邮件或类似的东西


推荐阅读