簡體   English   中英

Laravel - 在數據庫中存儲多個復選框表單值

[英]Laravel - Store multiple checkbox form values in database

所以我有這個代碼

看法:

 <div id="checkboxes"> <input type="checkbox" class="checkbox" name="services" value="{{ $service->id }}" id="{{ $service->id }}" /> <label class="whatever" for="{{ $service->id }}"><p class="serv-text"> {{ $service->service_name }} + ${{ $service->price }} </p></label> </div>

控制器:

 public function store(Request $request) { orders::create(Request::all()); return 'test'; }

模型:

 class orders extends Model { protected $fillable = [ 'category', 'services', 'total_price', 'user_id', 'status', 'user_id']; }

當我嘗試提交表單時,即使我在提交表單時選中了多個框,在 services 的數據庫中也只有一個數字。 我試圖在谷歌上找到一個解決方案,但什么也沒有。

如果您有多個這樣的復選框:

<input type="checkbox" name="services" value="1"/>
<input type="checkbox" name="services" value="2"/>
<input type="checkbox" name="services" value="3"/>

它只會向服務器發送一個值,因為名稱必須是唯一的。 解決方法是使用數組輸入:

<input type="checkbox" name="services[]" value="1"/>
<input type="checkbox" name="services[]" value="2"/>
<input type="checkbox" name="services[]" value="3"/>

然后您可以在控制器中獲取該輸入並執行以下操作:

$services = $request->input('services');
foreach($services as $service){
 orders::create($service);
}

Laravel 中數組的驗證:

https://laravel.com/docs/5.7/validation#validating-arrays

有關輸入數組的更多信息:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#Handling_multiple_checkboxes

如何將表單輸入數組轉換為 PHP 數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM