یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
محمدسجاد دباغ
4 سال پیش توسط محمدسجاد دباغ مطرح شد
8 پاسخ

حذف timestamps از جدول در لاراول

سلام
یک Migration ایجاد و برای حذف time عبارک زیر رو حذف کردم

$table->timestamps();

اما پس از post دیتای فرم ارور زیر میاد

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list' (SQL: insert into `menu` (`title`, `parent_id`, `order`, `updated_at`, `created_at`) values (ارتباط, parent, 1, 2021-05-07 17:31:02, 2021-05-07 17:31:02))

یعنی خود لاراول همراه اطلاعات فرم، زمان را هم میفرسته.
راه حل چیست؟


ثبت پرسش جدید
مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 4 سال پیش مطرح شد
2

در مدل مربوطه این مقدار رو اضافه کنید :

public $timestamps = false;

فرشید مرادی
تخصص : noob
@eniack 4 سال پیش مطرح شد
-1

سلام بعد از حذف timestamps رول بک یا ریست کردین مایگریشن رو؟


محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 4 سال پیش مطرح شد
0

@eniack
بعد از حذف timestamps دستور php artisan migrate رو اجرا کردم.
الان دیتابیس اوکی هست و چنین فیلدهایی نیست اما فرم ها در لاراول خودکار این دو فیلد رو post میکنند.


مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 4 سال پیش مطرح شد
2

در مدل مربوطه این مقدار رو اضافه کنید :

public $timestamps = false;

فرشید مرادی
تخصص : noob
@eniack 4 سال پیش مطرح شد
0

@mehdi.shahabbasian
چرا این اتفاق میوفته؟! یعنی خود فرم این مقدار رو post میکنه؟


مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 4 سال پیش مطرح شد
4

@eniack
در هسته لاراول به صورت پیشفرض برای تمام مدل ها مقادیر created_at و updated_at ارسال میشه .

اگر دقت کنید مدل ها از کلاس Model در آدرس Illuminate\Database\Eloquent\Model ارث بری میشن
و در این کلاس هم یک trait وجود داره به نام HasTimestamps که در آدرس Illuminate\Database\Eloquent\Concerns میشه پیداش کرد
در نهایت وقتی این trait رو میخونیم میبینیم داره به صورت خودکار 2 زمان مشخص رو توی جداول بروزرسانی میکنه

در این trait یک پروپرتی وجود داره که به صورت دیفالت روشنه

public $timestamps = true;

و چندین متد که دارن کار زمان گذاری در جدول و انجام میدن.

پس اگر در مدل نیازی به timestamps نداریم خیلی راحت میایم و خاموشش میکنیم

public $timestamps = false;

فرشید مرادی
تخصص : noob
@eniack 4 سال پیش مطرح شد
1

@mehdi.shahabbasian
بسیار عالی ، ممنون از شما و اطلاعاتی که به اشتراک میزارید.


سمیرا پدیدار
@samirapadidar2000 3 سال پیش مطرح شد
0

فن بیان عالی ای دارین مچکرم


مریم جعفری
تخصص : برنامه نویس
@matiar2244 3 سال پیش آپدیت شد
1

سلام من همه کار های که گفتید رو انجام دادم ولی الان اررور createdat میده تصویر
میشه لطفا بگید برای این کار باید چی کار کنیم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام