我正在使用Laravel 5.2开发一个应用程序系统。我有一些<select>
来选择产品并报告金额。它将生成一个表,其中包含为应用程序选择的产品列表。如何在控制器中检索此信息表?
[更新中]对不起,英语,但我的问题如图所示,通过单击"提交订单"按钮,我可以阅读带有添加产品的<table>
<tr>
<td>
并将产品保存在Order_Details表中。
在此处输入图像描述
实际上,对于选择,您需要两个字段:值(在大多数情况下是 Id)和另一个要显示为键的元素。Eloquent 提供了一种称为"lists"的有用方法:它返回键/值元素的集合。
$model = Model::lists('key', 'value');
将"键"和"值"字段替换为列的名称。下一步是在视图中使用检索到的数据。您有两种不同的方法来解决这部分问题:
- 手动循环访问集合以编写 select 语句
- 使用 LaravelCollective Html 助手
La ravelCollective HTML助手有很多方法,我相信你会发现在你的编码中很有用。它甚至包括一种创建下拉列表的方法。
为了在控制器中检索该表上的信息,您需要POST
数据。
首先,您需要在App'Http'routes.php
文件中提供邮政路由:
Route::post('pedidos', [
'as' => 'post-pedidos',
'uses' => 'PedidosController@post'
]);
现在,您可以创建一个表单,该表单将收集将发送到该路由的所有数据。它应包含您的产品下拉输入将生成的表:
<form method="post" action="{{ route('post-pedidos') }}">
{{ csrf_field() }}
<table>
// Put table rows + input here
</table>
</form>
现在,您需要做的就是确保您的行上有实际输入,这些输入将与表单一起提交。像这样的东西?
<input type="hidden" name="codigo[0]" value="30628">
<input type="hidden" name="quantidade[0]" value="90">
要查看PedidosController
post
方法需要什么,请查看如何从请求中检索数据以及如何在将数据插入数据库之前对其进行验证。