راکت

تغییر تاریخ دو فیلد در دیتابیس

2 پاسخ

سلام وقت همه دوستان بخیر
من داخل یکی از جداول داخل دیتابیسم دو تا فیلد دارم که نوعشون از نوع timestamp
یکی از این فیلد ها مربوط به تاریخ تحویل میشه که موقع ساخت کار پر میشه ینی موقعی که ادمین داره کار رو میسازه مثلا میزنه برای 3 روز دیگه و فیلد دیگه مربوط به تاریخ انجام شدن توسط کارگر میشه این فیلد به صورت پیشفرض null و موقعی که کارگر این کار رو انجام بده با تابع date در php پر میشه
حالا مشکل من اینجاست وقتی کارگر کار رو done میکنه تاریخ فیلد تاریخ تحویل رو هم برابر با تاریخ انجام شدن قرار میده خب این نباید اینجوری باشه و علتشم نمیدونم
این فیلد های جداولم هست:

 $table->timestamp('delivery_date');
$table->timestamp('done_at')->nullable();

این کدم مربوط به تاریخ انجام شدن توسط کارگر:

    public function DoneTasks($id)
    {
        $TaskID = Task::getID($id);
        if (!$TaskID) {
            return redirect()
                ->route('worker.Tasks')
                ->with('error', '!این وظیفه وجود ندارد');
        } else {
            if ($TaskID->user_id == Auth::guard('worker')->user()->user_id) {
                if ($TaskID->done_at == null) {
                    $TaskID->done_at = date("Y-m-d H:i:s");
                    $TaskID->status = 1;
                    if ($TaskID->save()) {
                        return redirect()->route('worker.Tasks');
                    }
                }
                return redirect()
                    ->route('worker.Tasks')
                    ->with('error', '!این وظیفه قبلا تکمیل شده است');
            }
            return redirect()
                ->route('worker.Tasks')
                ->with('error', '!این وظیفه متعلق به شما نیست');
        }
    }

ممنون میشم کمکم کنید
@abol313 @endworld @mhyeganeh

ثبت پرسش جدید

پاسخ‌ها

2
حمیدرضا
حمیدرضا
@hamidrezamnj

تخصص: برنامه نویس backend

احتمالا یادتون رفته که ستون done_at رو داخل fillable مدلتون اضافه کنید.

محمد مهدی رباط جزی
محمد مهدی رباط جزی
@Psycho

انجام دادم ولی تاثیری نداشت

<?php

namespace App\Models;

use Hekmatinasser\Verta\Verta;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;

class Task extends Model
{
    use HasFactory;

    protected $fillable = [
        'done_at',
    ];

@hamidrezatwitter

شاید پاسخ شما همین‌جا باشد

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

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