首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    3分钟短文:Laravel Carbon自定义日期时间格式

    引言 laravel引用了强大的Carbon日期时间处理库用于日期时间的操作, 并且在数据库的格式化中使用该库。本文就说一说程序中如何方便地使用 Carbon自定义格式。...学习时间 只要成功安装了laravel的项目,已经内置了标准的carbon库文件,比如说在写入数据库字段 created_at 时是这样的格式: $item['created_at'] => "2020...在模型中添加以下声明: protected $casts = [ 'created_at' => 'datetime:Y-m-d', 'updated_at' => 'datetime:Y-m-d...或者在laravel5中使用 $dates 属性,功效与上面的方式相同: protected $dates = ['created_at', 'updated_at'] 读取的时候,该字段都会返回一个null...在模板中打印默认格式的日期时间字符串,可以这样使用: {{$user->created_at->toFormattedDateString()}} 写在最后 本文介绍了laravel模型中的 $casts

    3.6K20

    3分钟短文:Laravel模型创建数据条目的2个语法糖

    代码时间 我们在构建一个hello world页面的时候,已经介绍了如何使用laravel的命令行脚手架创建新的模型文件,以及通过迁移功能创建数据库表。这样就把数据操作衔接起来了。...我们在表中还有id字段,created_at字段,updated_at字段,并没有显式赋值。但是你打开数据库表查看结果的时候,发现那些值也成功的写入了。...原有如下: id字段是 auto_increment 约束,自动递增; created_at / updated_at 字段,在Event模型内使用了 $timestamp = true。...这样laravel在处理模型数据的时候,会默认更新此二字段。 然而,对于写入数据库的那些数据,并不是所有字段都会允许写入的。在模型内我们可以手动指定哪些字段可以写,哪些字段不可以写。...新建 or 更新 接着介绍laravel模型的几个语法糖。一个常规的场景,比如在写入数据时,先判断数据库表内是否有该条记录,如果没有就创建,如何有则返回。

    1.9K00

    3分钟短文:Laravel模型读数据的那个“障眼法”

    日期时间格式化 先从最常用的地方着手,比如在迁移文件内使用的 timestamps方法,就是在表内生成 created_at和updated_at两个 datetime 类型的字段,用于标记该记录的创建时间和更新时间...laravel框架继承了广泛使用稳定可靠的 Carbon 类库用于操作日期时间。...= ['created_at','updated_at','started_at']; 那么这三个字段都会使用 Carbon 进行格式化,在访问模型对象属性时,就会返回该Carbon对象。...访问器 其实上一节所说的日期时间的格式化,正是laravel模型访问器的功能。专门用于在模型层面,修改模型属性的展示方式。定义一个访问器非常简单,就是在模型内添加规范格式的方法函数。...在程序内使用 ->name 访问的时候,就会调用该方法。

    94111

    Laravel API教程:如何构建和测试RESTful API

    在本文中,我们将探讨如何构建和测试使用Laravel进行身份验证的强大API。我们将使用Laravel 5.4,所有的代码都可以在GitHub上参考。...$table->timestamps() 将会为我们生成时间戳——在created_at和updated_at时,但是不用担心设置一个默认的,Laravel将在需要时更新这些字段。....'], 200); } 使用此策略,用户拥有的任何令牌都将无效,API将拒绝访问(使用中间件,如下一节所述)。这需要与前端进行协调,以避免用户在没有访问任何内容的情况下保持记录。...要开始使用,我们需要调整一些设置来使用内存中的SQLite数据库。使用它将使我们的测试快速运行,但是权衡是一些迁移(migration )命令(例如约束)在该特定设置中将无法正常工作。...绝对有改进的空间 - 您可以使用Passport软件包实现OAuth2 ,集成分页和转换层(我推荐使用Fractal),但是我想通过在Laravel中创建和测试API的基础知识外部包装。

    20.4K20

    Laravel5.2之模型关联预加载

    说明:本文主要说明Laravel Eloquent的延迟预加载(Eager Loading),使用延迟预加载来减少MySQL查询次数。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。...开发环境:Laravel5.1+MAMP+PHP7+MySQL5.5 先写个店铺列表页 1.先装上开发插件三件套(具体可参考:Laravel5.2之Seeder填充数据小技巧) 不管咋样,先装上开发插件三件套...: composer require barryvdh/laravel-debugbar --dev composer require barryvdh/laravel-ide-helper --dev...预加载查询 (1)嵌套预加载 Eloquent在通过属性访问关联数据时是延迟加载的,就是只有该关联数据只有在通过属性访问它时才会被加载。在查找上层模型时可以通过预加载关联数据,避免N+1问题。...而且,使用预加载超级简单。

    2.6K41

    Laravel5.2之Seeder填充数据小技巧

    说明:本文主要聊一聊Laravel测试数据填充器Seeder的小技巧,同时介绍下Laravel开发插件三件套,这三个插件挺好用哦。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。...mpociot/laravel-test-factory-helper --dev 然后在config/app.php文件中填上: /** *Develop Plugin...,在控制器里输入方法时会自动补全auto complete字段属性的方法: 2、mpociot/laravel-test-factory-helper 输入指令php artisan test-factory-helper...Laravel官方推荐使用模型工厂自动生成测试数据,推荐这么写的: //先输入指令生成database/seeds/CategoryTableSeeder.php文件: php artisan make...分享下最近发现的一张好图和一篇极赞的文章: 文章链接:Laravel的中大型專案架構

    3.6K42

    Swoole+React 实现的聊天室

    前后端分离的项目,使用 Swoole+React 实现的聊天室,整个项目的框架结构可以进行参考,前端 react+react-redux+react-router+react-ant 等等,后台使用 easySwoole...简介 本人为了更加便利的开发,自行实现了中间件,封装了请求数据体,利用 jwt 实现 api 的 token 验证,集成了 Laravel 的 ORM,再次封装了一套适合 api 编写流程的数据请求流程...项目效果 5.1 畅聊室 5.2 私聊室 此外,还有其他的加好友,消息推送等效果不演示了,可以自行下载安装使用,效果很好!...NULL DEFAULT 'PUBLIC' COMMENT '操作样式', `chat_content` varchar(255) NOT NULL DEFAULT '' COMMENT '聊天记录...', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP

    62410

    跟我一起学Laravel-EloquentORM基础部分

    默认情况下,Eloquent期望表中存在created_at和updated_at两个字段,字段类型为timestamp,如果不希望这两个字段的话,设置$timestamps为false 的时候,会自动为created_at和updated_at字段设置时间戳,不需要手动指定 批量赋值插入 使用create方法可以执行批量为模型的属性赋值的插入操作,该方法将会返回新插入的模型,在执行...firstOrCreate方法用来使用给定的列值对查询记录,如果查不到则插入新的。...// 使用属性检索flight,如果不存在则创建......,返回删除的行数 $deletedRows = App\Flight::where('active', 0)->delete(); 软删除 软删除是在表中增加deleted_at字段,当删除记录的时候不会真实删除记录

    85220

    通过 Laravel Eloquent 模型实现简单增删改查操作

    下面我们将模型类定义的时候还会强调这一点。 模型类定义 使用模型类之前,需要在数据库有对应的数据表,因为模型类就是数据表在面向对象编程语言中的映射。...和 updated_at 字段(迁移类中 table->timestamps() 会生成这两个字段),并且在保存模型类时会自动维护这两个字段。...如果你的数据表里面不包含这两个字段,或者只包含一个,都需要设置 public $timestamps = false; 或者通过 CREATED_AT 和 UPDATED_AT 常量来设置自定义的创建和更新时间字段...: public const CREATED_AT = 'create_time'; public const UPDATED_AT = 'update_time'; 此外,默认时间的存储格式是 Y-m-d...时间戳: protected $dateFormat = 'U'; 这样,保存到数据库的时间格式就是 Unix 时间戳了,前提是你的 created_at 和 updated_at 字段是整型,否则会报格式错误

    8K20

    电商系统设计之用户系统

    前言 设计以以下为工具讲起 – PHP为开发语言 – 基于Laravel框架 – MySQL为数据存储 电商的可变性与孩子的心情一样,变化极快,所以在设计之处就要想好大部分的功能接入及开发,尽量减少重构次数...用户信息表 member_query_history 用户搜索历史表 member_wallet 用户账户表 member_withdrawal 用户提现表 用户表 考虑到多种登录方式,应在数据表中涉及到微信的...=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 银行卡表 用于用户提现的业务等,大致将银行卡所需的信息记录即可...正常只需要member_cart_item表即可,根据实际下线的业务场景,正常购物到超市需要拿一个购物车,但这个购物车并非属于你,你使用之后,需要归还,他人可继续使用,将购物车公开化,并不是将购物车商品公开化...业务场景比较窄,例如京东到家和京东商城一样(我只是举例,并不清楚他们怎么做的),购物车不通用,那如何区分呢,是应该在购物车上区分还是在购物车商品上区分?我想你已经清楚了。

    2.3K50

    老项目重构手记之用户系统

    功能重新写好后,在数据迁移方便,当然没法人工操作,php脚本去迁移也不现实,考虑使用数据队列等等方式进行数据迁移 功能代码绝笔是另起炉灶写,在原程序上写复杂度有提升了一倍。...语言:PHP 框架:Laravel 数据库:MySQL 考虑到数据量也不小,手动操作是不可能了,选择使用RabbitMQ进行数据迁移 新表设计 用户表 CREATE TABLE `member`...', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY...将数据迁移到新表中。当然你需要选择一个访问量最低的时间段。并不是凌晨就少,不同的行业的活跃时间段不一样。建议先使用百度统计、腾讯分析等等的查看活跃时间区间。...迭代 重构并不是一言一语,几行代码或者一个大佬的方案就可以解决的。实际重构也是一个开发的过程。在不断的迭代中,将重构完成的部分补回到业务中。 致谢 感谢你看到这里,希望本篇文章可以帮到你。

    69720

    MySQL 日期时间类型怎么选?千万不要乱用!

    构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 datetime 以及使用 int 来存储 unix timestamp。...那我们就一步一步来分析他们的特点,这样我们根据自己的需求选择合适的字段类型来存储 (优点和缺点是比较出来的 , 跟父母从小喜欢拿邻居小孩子跟自己比一样的) datetime 和 timestamp datetime...timestamp 更适合来记录时间,比如我在东八区时间现在是 2016-08-02 10:35:52, 你在日本(东九区此时时间为 2016-08-02 11:35:52),我和你在聊天,数据库记录了时间...timestamp 和 UNIX timestamp 显示直观,出问题了便于排错,比好多很长的 int 数字好看多了 int 是从 1970 年开始累加的,但是 int 支持的范围是 1901-12-13...laravel 是国际化设计的框架,为了程序员方便、符合数据库设计标准,所以 created_at updated_at 使用了 timestamp 是无可厚非的。

    2.9K30

    Laravel迁移数据库!

    我们本期要使用laravel自带的迁移功能,在不操作任何数据库的条件下,完成基础的数据构建。 迁移文件 本文假设你已经正确地配置了环境变量文件,并且通过数据库配置项,系统已经可以正常连接到数据库了。...比如主键默认的自增 id,还有用于记录创建时间 created_at 和 更新时间 updated_at,一个 timestamps() 方法就包含了, 只不过默认使用的是不直观的整型时间戳,如果要使用...datetime 格式用于直观地读取,则可以手动声明: $table->dateTime('created_at')->comment('创建时间'); $table->dateTime('updated_at...->after('last_name'); 仅仅修改字段名,只需调用对应方法: $table->renameColumn('promoted', 'is_promoted'); 或者在回滚方法中对某些新增的字段进行删除...上面给的这些个方法,足够应对很多很多场景了。 写在最后 本文介绍了laravel中使用迁移功能操作数据库的创建,修改,移除字段,删除表等,把开发者从手动维护数据库的状态中解脱出来。

    98610

    laravel 学习之路 数据库操作 Migrations

    在远古时代在中小公司中在没有一套比较好用的管理表变动的方案的时候相信童鞋们多少都经历过改数据库的痛苦,每次自己在本地增加了表或者字段都要记录下来告知其他同事,其他同事也得在自己本地修改,还要胆战心惊的改生产跟测试环境的数据库这种经历贼痛苦...在这两种方法中,你可以使用 Laravel 的结构生成器以表达式方式创建和修改表。...created_at 和 updated_at 它们的类型是 timestamps laravel 插入和编辑数据的时候会自动通过这两个字段记录操作的日期时间 这我们就发现了 laravel 的又一特点...很明显 laravel 默认表的主键字段名为 id 然后默认表有 created_at 和 updated_at 字段,增删改查不分家,增和改都默认有了个字段记录操作日期了,那删怎么能没有呢?...解决这个问题可以在MySQL 8中创建(或修改)使用caching_sha2_password 插件的账户,让其使用mysql_native_password 插件 ALTER USER 'root'@

    2.3K20

    3分钟短文:Laravel说要用软删除,可不要真删

    引言 我们不止一次在系列文章中讲到模型的“软删除”功能,因为现实场景中为了保证数据可追溯,我们几乎不会对数据库进行物理删除。删除数据有可能会造成数据一致性的破坏,进而导致业务逻辑无法跑通。...软删除 在许多情况下,你不会真正想要从数据库中删除记录,而是用一种不再在应用程序中显示它们的方式对其进行注释。这就是所谓的软删除。...Laravel本身支持软删除,只需要进行少量的配置更改,以确保在执行delete或destroy时,模型的记录不会被实际删除。作为一个例子,我们修改Event模型以支持软删除。...','updated_at']; } 保存这些更改之后,下次删除与此模型关联的记录时,deleted_at列将被设置为当前时间。...任何设置deleted_at为日期时间值的记录,都不会包含在任何查询结果中,因此看起来已经被删除了。

    2.2K00
    领券