مارک پلاس

تکنولوژی نوین اینترنتی

نحوه ایجاد فرم در لاراول و ارسال داده به کنترلر

دسته‌بندی‌ها

نحوه ایجاد فرم در لاراول و ارسال داده به کنترلر
فرم در لاراول

برای ایجاد فرم در لاراول و ارسال داده به کنترلر، می‌توان از امکانات خود لاراول مانند Route, Controller, و Blade Templates استفاده کرد. در اینجا نحوه ایجاد یک فرم ساده، ارسال داده به کنترلر، و ذخیره آن در پایگاه داده را آموزش می‌دهیم.



📝 ایجاد فرم در لاراول و ارسال داده به کنترلر



1. ساخت مایگریشن و مدل برای داده‌ها

ابتدا یک مدل و مایگریشن برای داده‌هایی که می‌خواهیم در فرم وارد کنیم، ایجاد می‌کنیم. برای مثال، می‌خواهیم یک فرم برای ثبت اطلاعات یک پست بسازیم.

bash
php artisan make:model Post -m

در فایل مایگریشن (database/migrations/xxxx_xx_xx_create_posts_table.php)، ساختار جدول را به این شکل تعریف می‌کنیم:

php
public function up() { Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->timestamps(); }); }

سپس مایگریشن را اجرا می‌کنیم تا جدول در پایگاه داده ایجاد شود:

bash
php artisan migrate

2. ایجاد فرم در Blade

در این مرحله، یک فرم برای ارسال اطلاعات به کنترلر ایجاد می‌کنیم.

مسیر ایجاد فرم در Blade: resources/views/posts/create.blade.php

blade
<form action="{{ route('posts.store') }}" method="POST"> @csrf <label for="title">Title:</label> <input type="text" name="title" id="title" required><br><br> <label for="content">Content:</label> <textarea name="content" id="content" required></textarea><br><br> <button type="submit">Submit</button> </form>

در این فرم:

  • از @csrf برای محافظت از حملات CSRF استفاده می‌کنیم.

  • فرم به آدرس posts.store ارسال می‌شود که در Route تعریف خواهیم کرد.

  • داده‌ها به صورت POST ارسال می‌شوند.


3. تعریف Route برای ارسال فرم

در فایل routes/web.php، باید یک روت برای نمایش فرم و یک روت برای ارسال داده‌ها به کنترلر ایجاد کنیم.

php
use App\Http\Controllers\PostController; Route::get('/posts/create', [PostController::class, 'create']); Route::post('/posts', [PostController::class, 'store'])->name('posts.store');

در اینجا:

  • GET /posts/create برای نمایش فرم است.

  • POST /posts برای ارسال داده‌ها به کنترلر است.


4. ایجاد کنترلر

حالا باید کنترلری بسازیم که داده‌ها را دریافت کرده و در پایگاه داده ذخیره کند.

bash
php artisan make:controller PostController

در این کنترلر، دو متد create و store را اضافه می‌کنیم:

php
namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; class PostController extends Controller { // نمایش فرم public function create() { return view('posts.create'); } // ذخیره داده‌های فرم public function store(Request $request) { // اعتبارسنجی داده‌ها $validatedData = $request->validate([ 'title' => 'required|max:255', 'content' => 'required', ]); // ذخیره داده‌ها در پایگاه داده $post = new Post(); $post->title = $validatedData['title']; $post->content = $validatedData['content']; $post->save(); // بازگشت به صفحه‌ای خاص یا نمایش پیغام موفقیت return redirect()->route('posts.create')->with('success', 'Post created successfully!'); } }

در اینجا:

  • متد create نمای فرم را برمی‌گرداند.

  • متد store داده‌های فرم را اعتبارسنجی کرده و در پایگاه داده ذخیره می‌کند.


5. نمایش پیغام موفقیت یا خطا در فرم

برای نمایش پیغام‌های موفقیت یا خطا در فرم، از قسمت session لاراول استفاده می‌کنیم. در فایل Blade فرم، بعد از شروع فرم می‌توانیم این پیغام‌ها را نمایش دهیم.

blade
@if (session('success')) <div class="alert alert-success"> {{ session('success') }} </div> @endif

6. نتیجه

حالا با رفتن به /posts/create در مرورگر، فرم ایجاد پست نمایش داده می‌شود. وقتی کاربر فرم را پر کرده و ارسال می‌کند، داده‌ها به کنترلر ارسال می‌شود، اعتبارسنجی می‌شوند، و در پایگاه داده ذخیره می‌شوند.


✨ جمع‌بندی

با این روش می‌توانید فرم‌های ساده در لاراول ایجاد کنید و داده‌ها را به کنترلر ارسال کرده و در پایگاه داده ذخیره کنید. این روش برای ساخت هر نوع فرم و ذخیره داده‌ها در لاراول کاربرد دارد.

اگر نیاز به امکانات بیشتری دارید، مانند آپلود فایل، اعتبارسنجی پیچیده‌تر یا ارسال داده‌ها به API، می‌توانم به شما کمک کنم. اگر سوالی دارید، حتماً بپرسید!

محتوای مرتبط

پست‌های مرتبط