[英]Laravel Form: How to pass hidden information to controller without using form
我正在創建一個包含目錄、交易系統和自定義貨幣的網站(在 Laravel 中)。
我已經完全完成了目錄和自定義貨幣(至少到目前為止),它只是交易系統。 我非常接近完成交易系統,除了這件事一直阻礙我,盡管我認為它應該很簡單。
每個目錄項目都有一個唯一的 ID(在數據庫中稱為 uid),交易系統根據唯一的項目 ID 交易項目。
這是交易頁面供參考。 我有它,如果您單擊您想要或想要贈送的項目上的復選框,它會將您檢查的所有 uid 發送到一個數組中(注意:我有 2 個單獨的 arrays,一個用於提供項目,一個用於請求項目)。
但是我現在擁有它的方式是它根據表單輸入獲取每個 Item uid。 由於我不希望用戶能夠編輯項目的唯一 ID,因此我需要一種在后端執行此操作的方法。 我已經嘗試過研究,但我還沒有走得太遠。
我對 laravel 和作為一個整體制作網站有點陌生,所以我真的不知道如何 go 向前推進。 我想我將不得不使用 JavaScript,但我不知道如何使用 javascript 將信息發送到 controller。 我也聽說過編碼然后解碼值,但我也不知道該怎么做。
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 class="card-body h-100" style="padding-top: 0px;padding-bottom: 0px;padding-right: 0px;padding-left: 0px;">
<div class="card h-100" style="border-radius: 0px; width: 120px;">
<img style="object-fit:cover; width: 100%; height: 50px;" src="/public/uploads/catalog/{{$item->image}}">
<span class="badge badge-success limited">Limited</span>
<div class="card-body" style="padding-bottom: 10px;padding-right: 10px;padding-left: 10px;padding-top: 10px;">
<h6>{{$item->title}}</h6>
<img style="margin-bottom: 2px;" src="{{ asset('public/img/nau.png') }}"> {{number_format($item->rbpp)}}
</div>
<div class="card-footer" style="padding-bottom: 0px;padding-top: 10px;padding-right: 0px;padding-left: 10px;">
(Getting uid value for each item checked)<input type="checkbox" name="out_data[]" value="{{$itemb->uid}}"> <label>Trade?</label>
</div>
</div>
</div>
</a>
</div>
@else
@endif
@else
@endif
@endforeach
</div>
非常感謝任何幫助,(對不起,如果我的帖子很亂。請告訴我是否需要放置更多代碼示例。)
據我了解,您擔心人們會修改該項目的 UUID 並嘗試“出售”另一個沒有的項目。 如果是這種情況,您不應處理表單本身,而應處理后端的安全性。 那是:
從我閱讀的內容來看,您似乎正在跳過第 2 步。您可以在其中檢查從表單收到的 UUID。
將 html 表單更改為“不可更改”幾乎是不可能的,因此請根據您的限制工作,而不是反對他們。 :)
您可以為每個包含 uid 的項目包含一個隱藏的表單輸入嗎? 例如
<input type="hidden" name="uid" id="uid" value="{{ $item->uid }}">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.