php - 几种形式的逻辑,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 文档上阅读的内容来看,我认为事件将是触发“警告”第二个用户他需要验证表单的触发器,对吗?
如果我“一次问太多”或者这些是非常基本的问题,我很抱歉。我只是想确保我朝着正确的方向前进。
提前致谢!
解决方案
我不确定我是否 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
如果您想发送消息,事件确实是要走的路。因此,您可以在提交数据后立即触发事件。其中一位听众会发送一封电子邮件或类似的东西
推荐阅读
- powershell - 使用 PowerShell 解析 txt 文件或输入
- javascript - 如何通过手机改善网站中标签之间的交易
- android - 当我在 Firebase 中更新数据时,为什么活动会重新启动?
- android - Android:RecyclerView stackfromEnd 被忽略
- android - ViewPager Fragment scenario where the Fragment need to handle on/off status
- android - 根据预期的视频分辨率计算压缩比特率
- inform7 - 如何进行“打字”命令?
- machine-learning - 为什么XLNet和Transformer-XL中的batch_size不是第一维而是第二维?
- python - What is time complexity of Python3's open() function?
- python - Matplotlib FuncAnimation 在使用 PyQT5 的窗口应用程序中不起作用