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


ثبت پرسش جدید
حمیدرضا
تخصص : برنامه نویس backend
@hamidrezamnj 2 سال پیش مطرح شد
0

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


محمد مهدی رباط جزی
@Psycho 2 سال پیش مطرح شد
0

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

<?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


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

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