laravel 的 route 如果是要顯示頁面的話我們會使用 get,像是:
Route::get('/products', [ProductController::class, 'index']);
我們如果要用 post 的方法把資料傳到後端的話,可以先建立這樣的表單。
<form action="/products/create" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="mb-2">
<label for="">名稱</label>
<input type="text" class="form-control" name="name">
</div>
<button class="btn btn-info" type="submit">送出</button>
</form>
接著準備 route
Route::post('/products/create',[ProductController::class, 'create']);
在 ProductController 那邊就可以接收資料了:
public function create(Request $request) { echo $request->name; }
laravel 也可以很輕易地幫我們做表單驗證,use 這些東西:
use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rule;
驗證表單,失敗就到輸入資料的頁面:
public function create(Request $request) { $rules = [ 'name' => 'required|string|min:3|max:20', ]; $validator = Validator::make($request->all(),$rules); if ($validator->fails()) { return redirect('/products') ->withInput() ->withErrors($validator); } echo $request->name; }
簡單的範例說明。