Hari ini kita akan melakukan validasi form ajax agar kita bisa melakukan validasi form tanpa harus me-refresh halaman. Jadi, mari kita mulai…
Buat proyek Laravel baru dan jalankan perintah ini
komposer create-project –prefer-dist laravel/laravel blog
buat koneksi database
Buka file .env dan atur nama database yang Anda buat di panel admin Dashboard MySQL
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_ajax_blog
DB_USERNAME=root
DB_PASSWORD=
Buat rute khusus kami
route/web.php
Route::get('post/create', [PostController::class, 'postCreateByAjax'])
->name('post.validation');
Route::post('post/store', [PostController::class, 'postStoreByAjax'])
->name('post.validation.store');
Buat model
Kami akan membuat model Post, jalankan perintah ini
php artisan make:model Post
model/Post.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
protected $fillable = [
'title',
'description'
];
}
Buat pengontrol
Kami akan membuat pengontrol bernama PostController, jalankan perintah ini
php artisan make:controller PostController
app/Http/Controllers/PostController.php
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class PostController extends Controller
{
public function postCreateByAjax(){
return view('ajax.ajax-create');
}
public function postStoreByAjax(Request $request){
$validator = Validator::make($request->all(), [
'title' => 'required',
'description' => 'required',
]);
if ($validator->passes()) {
Post::create($request->all()); // it store data to the DB
return response()->json(['success'=>'Added new records.']);
}
return response()->json(['error'=>$validator->errors()]);
}
}
Dapatkan kode lengkapnya: Validasi formulir ajax Laravel