【问题标题】:Date value is stored as 0000-00-00 in DB日期值在 DB 中存储为 0000-00-00
【发布时间】:2021-12-31 00:12:55
【问题描述】:

我正在尝试使用 php Laravel 将来自 Datepicker 的值存储在我的 MySQL 数据库中。

该请求适用于 AFAIK,因为当我 dd 请求时显示日期,但是在查看数据库时我只看到“0000-00-00”而不是日期,所以我猜我的控制器丢失了一些东西但是我不知道是什么。

这是我的控制器方法:

public function storePost(Request $request) {


        $this->validate($request, [
            'titel' => 'required|max:255',
            'standort' => 'required|max:255',
            'kontakt' => 'required|email|max:255',
            'startdatum' => 'required|date',
            'enddatum' => 'required|date',
            'beschreibung' => 'required|',
        ]);

        $request->user()->posts()->create([
            'titel' => $request->titel,
            'standort' => $request->standort,
            'kontakt' => $request->kontakt,
            'startdatum' => $request->startdatum,
            'enddatum' => $request->enddatum,
            'beschreibung' => $request->beschreibung,
        ]);

        return redirect()->route('home');
    }

在堆栈溢出时看到它后,我已经尝试过使用此版本,但它也不起作用:

public function storePost(Request $request) {

        $this->validate($request, [
            'titel' => 'required|max:255',
            'standort' => 'required|max:255',
            'kontakt' => 'required|email|max:255',
            'startdatum' => 'required|date',
            'enddatum' => 'required|date',
            'beschreibung' => 'required',
        ]);

        $request->user()->posts()->create([
            'titel' => $request->titel,
            'standort' => $request->standort,
            'kontakt' => $request->kontakt,
            'startdatum' => Carbon::parse($request->startdatum),
            'enddatum' => Carbon::parse($request->enddatum),
            'beschreibung' => $request->beschreibung,
        ]);

        return redirect()->route('home');
    }

我不确定它是否相关,但这里是日期来自的 html 代码的 sn-p:

            <div class="flex flex-wrap -mx-3 mb-6">
                <div class="w-full px-3">
                    <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2 text-base" for="startdatum">
                        Startdatum
                    </label>
                    <input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded
                    py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white
                    focus:border-gray-500 @error('startdatum') border-red-500 @enderror" id="startdatum" name="startdatum" type="date" placeholder="Startdatum">
                    @error('startdatum')
                    <div class="text-red-500 mt-2 text-sm">
                        {{ $message }}
                    </div>
                    @enderror
                </div>
            </div>


            <div class="flex flex-wrap -mx-3 mb-6">
                <div class="w-full px-3">
                    <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2 text-base" for="enddatum">
                        Enddatum
                    </label>
                    <input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded
                    py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white
                    focus:border-gray-500 @error('titel') border-red-500 @enderror" id="enddatum" name="enddatum" type="date" placeholder="Enddatum">
                    @error('enddatum')
                    <div class="text-red-500 mt-2 text-sm">
                        {{ $message }}
                    </div>
                    @enderror
                </div>
            </div>

【问题讨论】:

  • 返回给您的日期是什么格式的?
  • @RiggsFolly 这就是格式:"startdatum" => "2021-11-20" "enddatum" => "2021-11-24"
  • 相当肯定用户不是请求对象的一部分
  • @RiggsFolly 我得到了更多的东西,比如请求中的标题、位置和电子邮件,所有这些都正确存储在数据库中,只是日期显示为 0
  • 你使用的是哪个版本的 Laravel

标签: php html mysql laravel


【解决方案1】:

在您的 Post 模型中,确保您的 $fillable 属性具有正确的属性:

class Post extends Model
{
 protected $fillable = ['standort','titel','kontakt','startdatum','enddatum','beschreibung'];
....
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2012-12-22
    • 1970-01-01
    • 2018-12-19
    • 2015-07-19
    • 2016-06-04
    相关资源
    最近更新 更多