Dre*_*rts 6 laravel laravel-nova
我希望 Laravel Nova 在基于模型的自定义时区中处理 DateTime 字段(以 UTC 形式存储在数据库中),而不是默认情况下在用户时区中处理:
https://nova.laravel.com/docs/3.0/resources/date-fields.html#timezones
该字段用于显示美国各地时区不同地点的活动开始时间。在用户的时区中显示它们是没有意义的,因为它们将使用位置过滤器进行排序或根据位置模型进行查看。
有人有如何处理这个用例的解决方案吗?
请尝试此操作,在用户表中创建名为时区的新列。
Schema::table('users', function (Blueprint $table) {
$table->string('timezone')->nullable();
});
Run Code Online (Sandbox Code Playgroud)
在用户资源中创建时区字段,如下所示
Timezone::make('Timezone')
->default('yourtimezone'),
Run Code Online (Sandbox Code Playgroud)
然后在 novaServiceProvider 的 boot() 中添加以下内容
Nova::userTimezone(function (Request $request) {
return $request->user()->timezone;
});
Run Code Online (Sandbox Code Playgroud)
这使您可以控制用户时区。用户使用特定时区登录后,他/她将能够在跨时区的不同位置创建事件。