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

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

1- متد after
مشخص می‌کند که ستون باید بعد از ستون دیگری قرار گیرد.
این متد فقط برای برخی پایگاه‌های داده (مانند MySQL) پشتیبانی می‌شود.
$table->string('middle_name')->after('first_name');


2- متد autoIncrement
مشخص می‌کند که ستون به صورت AUTO_INCREMENT تعریف شود.
$table->integer('id')->autoIncrement();


3- متد charset
تنظیم charset برای ستون.
$table->string('name')->charset('utf8mb4');


4- متد collation
تنظیم collation برای ستون.
$table->string('name')->collation('utf8mb4_unicode_ci');


5- متد comment
اضافه کردن یک توضیح برای ستون.
$table->integer('age')->comment('Age of the user in years');


6- متد default
مقدار پیش‌فرض برای ستون را تنظیم می‌کند.
$table->string('status')->default('active');


7- متد first
مشخص می‌کند که ستون باید در ابتدای جدول قرار گیرد.
این متد فقط برای برخی پایگاه‌های داده (مانند MySQL) پشتیبانی می‌شود.
$table->string('first_name')->first();


8- متد from
مقدار شروع را برای ستون عددی AUTO_INCREMENT مشخص می‌کند.
$table->integer('id')->autoIncrement()->from(1000);


9- متد invisible
مشخص می‌کند که ستون در نتایج کوئری‌های SELECT به‌صورت پیش‌فرض مخفی باشد.
این ویژگی فقط در MySQL 8.0.23 یا بالاتر پشتیبانی می‌شود.
$table->string('secret_code')->invisible();


10- متد nullable
مشخص می‌کند که ستون می‌تواند مقدار NULL داشته باشد.
$table->string('middle_name')->nullable();


11- متد storedAs
$table->integer('price');
$table->integer('tax');
$table->integer('total')->storedAs('price + tax');

ستون total مقدار price + tax را ذخیره می‌کند.

12- متد unsigned
مشخص می‌کند که ستون عددی بدون علامت (unsigned) باشد.
$table->integer('votes')->unsigned();


13- متد useCurrent
مقدار پیش‌فرض ستون را به زمان فعلی تنظیم می‌کند. معمولاً برای ستون‌های timestamp یا datetime استفاده می‌شود.
$table->timestamp('created_at')->useCurrent();


14- متد useCurrentOnUpdate
مشخص می‌کند که ستون در زمان به‌روزرسانی رکورد به‌صورت خودکار مقدار زمان فعلی را دریافت کند.
$table->timestamp('updated_at')->useCurrentOnUpdate();


15- متد virtualAs
ایجاد یک ستون محاسباتی مجازی (Virtual Generated Column). مقدار این ستون در دیتابیس ذخیره نمی‌شود.
$table->integer('price');
$table->integer('tax');
$table->integer('total')->virtualAs('price + tax');

ستون total مقدار price + tax را محاسبه می‌کند ولی ذخیره نمی‌شود.

16- متد generatedAs
تعریف یک ستون تولیدشده (Generated Column) با استفاده از عبارت SQL.
$table->integer('price');
$table->integer('tax');
$table->integer('total')->generatedAs('price + tax');


17- متد always
معمولاً همراه با ستون‌های تولیدشده (Generated Column) استفاده می‌شود و مقدار آن همیشه از عبارت SQL تولید می‌شود.
$table->integer('total')->generatedAs('price + tax')->always();


18- متد change
برای تغییر ویژگی‌های ستون‌های موجود در یک جدول استفاده می‌شود.
این متد میتواند پس از 17 متد قبلی فراخوانی شود و ویژگی های ستون فعلی را ویرایش کند.
$table->integer('id')->autoIncrement()->change();

در این مثال، ستون id به صورت AUTO_INCREMENT ایجاد نشده است، اما با این متد به صورت AUTO_INCREMENT ویرایش می شود.

19- متد dropMorphs
این متد برای حذف ستونی که مربوط به Polymorphic Relations است، استفاده می‌شود.
$table->dropMorphs('commentable');


20- متد dropRememberToken
این متد برای حذف ستونی که برای ذخیره‌ی remember token در جداول کاربران استفاده می‌شود، به کار می‌رود.
$table->dropRememberToken();


21- متد dropSoftDeletes
این متد برای حذف ستون‌هایی که مربوط به Soft Deletes هستند استفاده می‌شود.
$table->dropSoftDeletes();


22- متد dropSoftDeletesTz
این متد مشابه dropSoftDeletes است، اما برای ستون‌هایی که از نوع timestamp with timezone استفاده می‌کنند.

23- متد dropTimestamps
این متد برای حذف ستون‌های created_at و updated_at استفاده می‌شود.
$table->dropTimestamps();


24- متد dropTimestampsTz
این متد مشابه dropTimestamps است، اما برای ستون‌های created_at و updated_at که با نوع timestamp with timezone ذخیره شده‌اند، استفاده می‌شود.

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

👤 AmirHossein

💎 Channel: @DevelopixLaravel
  • ❤ 8
  • 👍 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 →