我正在嘗試使用 Laravel 進行第一個表單驗證,由于某種原因,第一個欄位(全名)不會接受我輸入的任何內容并回傳錯誤“需要全名欄位”。
我的表單視圖。
<!-- CONTACT -->
<section>
<div>
<h3>Contact me for more information</h3>
@if (session('status'))
<p>{{ session('status') }}</p>
@endif
<form action="/contact" method="POST">
{{ csrf_field() }}
<div>
<div class="relative">
<label for="text">Full Name</label>
<input type="text" name="fullname" placeholder="John Doe" value="{{ old('fullName') }}" required />
@error('fullName')
<div>{{ $message }}</div>
@enderror
</div>
<div hljs-string">">
<label for="email">E-mail</label>
<input type="email" name="email" placeholder="[email protected]" value="{{ old('email') }}" required />
@error('email')
<div>{{ $message }}</div>
@enderror
</div>
</div>
<div hljs-string">">
<label for="text">Phone Number</label>
<input type="text" name="phoneNumber" placeholder="(123) 456-7890" value="{{ old('phoneNumber') }}" />
@error('phoneNumber')
<div>{{ $message }}</div>
@enderror
</div>
<div hljs-string">">
<label for="textarea">Message</label>
@error('message')
<div>{{ $message }}</div>
@enderror
<textarea type="textarea" name="message" rows="6" placeholder="Message" value="{{ old('message') }}" required></textarea>
</div>
<button type="submit">Send</button>
</form>
</div>
</section>
聯系人控制器
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'fullName' => 'required|string|max:70',
'email' => 'required|email|max:255',
'phoneNumber' => 'nullable|regex:^(\ \d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$^',
'message' => 'required|string|min:50',
]);
if ($validator->fails()) {
return back()
->withErrors($validator)
->withInput();
}
$contact = new Contact;
$contact->fullName = $request->fullName;
$contact->email = $request->email;
$contact->phoneNumber = $request->phoneNumber;
$contact->message = $request->message;
$contact->save();
return redirect('/contact')->with('status', 'Thanks for contacting me. I\'ll be in touch soon!');
}
聯系方式
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Contact extends Model
{
use HasFactory;
protected $table = 'contacts';
protected $fillable = ['fullName', 'email', 'phoneNumber', 'message'];
}
遷移檔案
public function up()
{
Schema::create('contacts', function (Blueprint $table) {
$table->id();
$table->string('fullName');
$table->string('email');
$table->string('phoneNumber')->nullable;
$table->text('message');
$table->timestamps();
});
}
知道為什么第一個欄位“fullName”不接受任何東西嗎?無論我輸入什么,它都說必填欄位為空。謝謝。
uj5u.com熱心網友回復:
您的姓名欄位有錯字,它是全名而不是全名
<div class="relative">
<label for="text">Full Name</label>
<input type="text" name="fullName" placeholder="John Doe" value="{{ old('fullName') }}" required />
@error('fullName')
<div>{{ $message }}</div>
@enderror
</div>
uj5u.com熱心網友回復:
<div>
<h3>Contact me for more information</h3>
@if (session('status'))
<p>{{ session('status') }}</p>
@endif
<form action="/contact" method="POST">
{{ csrf_field() }}
<div>
<div class="relative">
<label for="text">Full Name</label>
<input type="text" name="fullName" placeholder="John Doe" value="{{ old('fullName') }}" required />
@error('fullName')
<div>{{ $message }}</div>
@enderror
</div>
<div hljs-string">">
<label for="email">E-mail</label>
<input type="email" name="email" placeholder="[email protected]" value="{{ old('email') }}" required />
@error('email')
<div>{{ $message }}</div>
@enderror
</div>
</div>
<div hljs-string">">
<label for="text">Phone Number</label>
<input type="text" name="phoneNumber" placeholder="(123) 456-7890" value="{{ old('phoneNumber') }}" />
@error('phoneNumber')
<div>{{ $message }}</div>
@enderror
</div>
<div hljs-string">">
<label for="textarea">Message</label>
@error('message')
<div>{{ $message }}</div>
@enderror
<textarea type="textarea" name="message" rows="6" placeholder="Message" value="{{ old('message') }}" required></textarea>
</div>
<button type="submit">Send</button>
</form>
</div>
</section>
請確保您注意變數命名 Laravel 區分大小寫。
您的全名錯誤
我建議你使用 full_name,mobile_number 像蛇盒。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/441879.html
下一篇:如何在執行覆寫時驗證欄位和條件?
