我制作了这个“转账”表格,效果很好,但有一个评论部分,除非我也填写,否则我的不会提交,页面只会更新。
我该如何解决这个问题?
MainController.php
public function transfer_money(Request $request) {
$data = request()->validate([
"amount" => 'string',
'recepitent' => 'string',
"comment" => 'string'
]);
$recepitent = User::where('name', $data['recepitent'])->get()[0]->id;
$sender = User::where('name', $request->user()->name)->get()[0]->id;
$recepitentid = User::find($recepitent);
$senderid = User::find($sender);
if($senderid->balance >= $data['amount']) {
$senderid->balance -= $data['amount'];
$recepitentid->balance += $data['amount'];
$senderid->save();
$recepitentid->save();
} else {
dd(1);
}
}
web.php
Route::post('/account/transfer', [MainController::class, 'transfer_money']);
transfer.blade.php
<form method="POST" action="transfer">
@csrf
<div class="section dark-bg">
<div class="flex flex-row vert-center horiz-center">
<input name="amount" class="borderless-input" id="amountinput" placeholder="Enter amount..." autocomplete="off" onkeypress='validate(event, this)'>
</div>
<p class="h2 mt mb10">Choose recepitent...</p>
<select name="recepitent" id="recepitent-s" class="recepitent-select w100">
@foreach($names as $name1) @if($name1->name != $currentname)
<option>{{$name1->name}}</option>
@endif @endforeach
</select>
<p class="h2 mt mb10">Payment purpose...</p>
<textarea name="comment" class="text-input w100" maxlength="99" onkeypress="countChars(this, 'counter1', 100)"></textarea>
<p class="right" id="counter1">100</p>
</div>
<div class="section">
<button id="" class="anchor-button w100" type="submit">send money</button>
</div>
</form>
谢谢你
如果您对“评论”字段使用可为空规则,则该字段将是可选的,并且对于表单提交来说不是必需的。
public function transfer_money(Request $request) {
$data = request()->validate([
"amount" => 'required|string',
'recepitent' => 'required|string',
"comment" => 'nullable|string'
]);