我的模型日期类型只有 Date,但我在 Laravel 中得到 Datetime

问题描述 投票:0回答:1

我只需要从我提交的日期中获取日期,并且日期提交类型是 DATE,但我在 Laravel 中获取日期和时间:

我的值保存在sql中:1970-04-21 我得到的值:1970-04-21 00:00:00

<?php

 namespace App\Models;

 use App\Models\Scopes\Searchable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Date extends Model
{
use HasFactory;
use Searchable;
use SoftDeletes;

protected $fillable = ['date'];

protected $searchableFields = ['*'];

protected $casts = [
    'date' => 'date',
];
 }

这是我的控制器:

 public function index(Request $request): View
{
    $this->authorize('view-any', Date::class);

    $search = $request->get('search', '');

    $dates = Date::search($search)
        ->latest()
        ->paginate(5)
        ->withQueryString();

    return view('app.dates.index', compact('dates', 'search'));
}
laravel date datetime-format
1个回答
0
投票

如果您想在获取日期时更改日期格式,请尝试使用

accessor

  <?php

 namespace App\Models;

 use App\Models\Scopes\Searchable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Date extends Model
{
use HasFactory;
use Searchable;
use SoftDeletes;

protected $fillable = ['date'];

protected $searchableFields = ['*'];

public function getDateAttribute($value)
    {
        return $this->asDateTime($value)->format('Y-m-d');
    }
 }
© www.soinside.com 2019 - 2024. All rights reserved.