猿问

Laravel Form:如何在不使用表单的情况下将隐藏信息传递给控制器

我正在创建一个带有目录、交易系统和自定义货币的网站(在 Laravel 中)。

我已经完全完成了目录和自定义货币(至少到目前为止),这只是交易系统。我已经非常接近完成交易系统了,除了这一件事一直阻碍着我,尽管我认为这应该很简单。

每个目录商品都有一个唯一的ID(在数据库中称为uid),交易系统根据唯一的商品id进行商品交易。

我有它,如果您单击您想要或想要赠送的项目上的复选框,它会将您签入的所有 uid 发送到一个数组中(注意:我有 2 个单独的数组,一个用于提供项目,一个用于请求项目)。

但我现在的方式是它根据表单输入获取每个 Item uid。由于我不希望用户能够编辑项目的唯一 ID,因此我需要一种在后端执行此操作的方法。我尝试过研究,但还没有走得太远。

我对 Laravel 和整个网站制作有点陌生,所以我真的不知道如何继续下去。我想我必须使用 JavaScript,但我不知道如何使用 JavaScript 将信息发送到控制器。我也听说过编码然后解码值,但我也不知道如何做到这一点。

HTML 代码(提供方):

@foreach (Auth::user()->inventory()->paginate(9999) as $itemb)

                        <form class="form-horizontal" method="POST" enctype="multipart/form-data" action="{{ route('trade.s', $user->id, [$itemb->uid]) }}">

                        {{ Form::token() }}

                        <?

                        $itembb = $itemb->item_id;

                        $item =  Item::whereid($itembb)->first();

                        $yoyo = $item->selling()->orderBy('price', 'asc')->first();

                        ?>

                        @if ($item->limited == '1')

                        @if ($item->rbp()->count() > 0)

                        <div class="col-md-4" style="margin-top: 8px;display: inline-block;padding-left: 10px;">

                        <a>

                            </div>

                     </div>

                    </div>

</a>


非常感谢任何帮助!(抱歉,如果我的帖子很混乱,请告诉我是否需要添加更多代码示例。)


慕盖茨4494581
浏览 100回答 2
2回答

大话西游666

据我了解,您担心的是人们会修改该项目的 UUID 并尝试“出售”另一个没有的项目。如果是这种情况,您不应该处理表单本身,而应该处理后端的安全性。那是:接收待售商品 UUID(或商品数组)!重要的!检查每个项目的 UUID 是否属于该特定登录用户。如果所有物品都属于该用户 a) 如果它们都属于该用户 -- 将它们存储在数据库中作为该用户的“销售”。b) 如果甚至有一件物品不属于用户 - 返回验证错误。他们不应该能够储存他们没有的待售物品。根据我的阅读,您似乎跳过了步骤 2。在该步骤中检查从表单收到的 UUID。将 html 表单更改为“不可更改”几乎是不可能的,因此请适应您的限制,而不是反对它们。:)

偶然的你

您可以为每个保存 uid 的项目添加一个隐藏表单输入吗?例如<input&nbsp;type="hidden"&nbsp;name="uid"&nbsp;id="uid"&nbsp;value="{{&nbsp;$item->uid&nbsp;}}">
随时随地看视频慕课网APP
我要回答