TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #122 820
فصل پنج - Migrations and Database

بخش اول - تعریف
و اجرای Migrationها

کلاس Blueprint در لاراول به عنوان ابزاری در مایگریشن‌ها استفاده می‌شود که امکان تعریف، تغییر و حذف ستون‌ها و ویژگی‌های جداول پایگاه داده را فراهم می‌کند. این کلاس همراه با متدهای Schema به کار می‌رود و مجموعه‌ای از متدها را برای مدیریت ستون‌ها و ایندکس‌ها ارائه می‌دهد.

مثال:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
});


در این مثال، کلاس Blueprint برای تعریف ساختار جدول users استفاده شده است. این جدول دارای سه ستون اصلی است.

از این قسمت به بررسی و توضیح متد های مدیریت جداول می پردازیم.

1- متد bigIncrements
این متد یک ستون کلید اصلی با نوع داده BIGINT ایجاد می‌کند که مقدار آن به صورت AUTO_INCREMENT خواهد بود.
$table->bigIncrements('id');


2- متد bigInteger
این متد یک ستون عدد صحیح بزرگ (BIGINT) ایجاد می‌کند که می‌تواند برای ذخیره اعداد بزرگ استفاده شود.
$table->bigInteger('views');


3- متد binary
این متد یک ستون با نوع داده باینری برای ذخیره داده‌های خام (مانند فایل‌ها) ایجاد می‌کند.
$table->binary('file_data', length: 16, fixed: true);


4- متد boolean
این متد یک ستون Boolean ایجاد می‌کند که برای ذخیره مقادیر منطقی استفاده می‌شود.
$table->boolean('is_active');


5- متد char
این متد یک ستون متنی با طول ثابت ایجاد می‌کند.
$table->char('code', length: 10);


6- متد dateTimeTz
این متد یک ستون تاریخ و زمان با پشتیبانی از منطقه زمانی (timezone) ایجاد می‌کند.
$table->dateTimeTz('start_time', precision: 0);


7- متد dateTime
این متد یک ستون تاریخ و زمان بدون منطقه زمانی ایجاد می‌کند.
$table->dateTime('created_at', precision: 0);


8- متد date
این متد یک ستون برای ذخیره تنها تاریخ (بدون زمان) ایجاد می‌کند.
$table->date('birth_date');


9- متد decimal
این متد یک ستون عددی دقیق با نقطه اعشار ایجاد می‌کند.
$table->decimal('price', total: 10, places: 2);

در این مثال، ستون price برای ذخیره اعداد با حداکثر 10 رقم و 2 رقم اعشار ایجاد می‌شود.

10- متد double
این متد یک ستون عددی با دقت شناور (دقت کمتر از decimal) ایجاد می‌کند.
$table->double('rating');


11- متد enum
این متد یک ستون از نوع ENUM ایجاد می‌کند که مقادیر آن باید از مجموعه‌ای از مقادیر از پیش تعریف‌شده باشد.
$table->enum('status', ['pending', 'approved', 'rejected']);


12- متد float
ایجاد ستون عددی شناور (مانند double) که برای اعداد تقریبی مناسب است.

$table->float('amount', precision: 53);


13- متد foreignId
ایجاد ستون عددی برای استفاده به عنوان کلید خارجی، معمولاً با نام id جدول مرجع.
$table->foreignId('user_id');


14- متد foreignIdFor
ایجاد ستون کلید خارجی و مشخص کردن کلاس مدل مرجع.
$table->foreignIdFor(User::class);


15- متد foreignUlid
ایجاد کلید خارجی با نوع ULID.
$table->foreignUlid('user_id');


16- متد foreignUuid
ایجاد کلید خارجی از نوع UUID.
$table->foreignUuid('user_id');


17- متد geography
ایجاد ستون جغرافیایی برای ذخیره داده‌های مکانی (مانند طول و عرض جغرافیایی).
$table->geography('coordinates', subtype: 'point', srid: 4326);


18- متد geometry
ایجاد ستون هندسی برای ذخیره داده‌های مکانی.
$table->geometry('positions', subtype: 'point', srid: 0);


19- متد id
ایجاد ستون کلید اصلی به صورت خودکار.
$table->id();


20- متد increments
ایجاد کلید اصلی AUTO_INCREMENT از نوع INT.
$table->increments('id');


21- متد integer
ایجاد ستون عدد صحیح.
$table->integer('votes');


22- متد ipAddress
ایجاد ستونی برای ذخیره آدرس IP.
$table->ipAddress('visitor');


23- متد json
ایجاد ستون برای ذخیره داده‌های JSON.
$table->json('options');


24- متد jsonb
مشابه json، اما برای دیتابیس‌های پشتیبانی‌کننده از نوع JSONB (مانند PostgreSQL) استفاده می‌شود.
$table->jsonb('options');


25- متد longText
ایجاد ستون متنی طولانی.
$table->longText('description');


🔖 #Laravel, #PHP, #فصل_۵, #لاراول

👤 AmirHossein

💎 Channel: @DevelopixLaravel
  • ❤ 5
  • 👍 1
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →