🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### laravel的缓存 >在 Laravel 5.8 版本中,缓存的过期时间单位由分钟改为了秒。在 Laravel 5.8 之前的版本中,缓存的过期时间都是以分钟为单位计算的。如果是从5.7升级上来的,项目里面又是使用了缓存的,需要修改一下,单位已经变了 ***** ### 一般线上laravel 项目都进行了 缓存配置如下所示 ``` php artisan config:cache php artisan route:cache php artisan view:cache ``` 如果手动更改了 .env的配置 需要重新执行缓存命令,不然会出现明明修改了却还是不行的情况,此情况容易忽略 ***** ### 队列相关 如果修改了相关代码或更新代码 应该对应重启队列,不然也会存在修改了却还是无效。 ***** ### env助手函数 在 Laravel 中使用`php artisan config:cache`命令可以将应用程序的所有配置信息缓存起来,以提高应用程序的性能。但是,这也会导致应用程序无法动态读取`.env`文件中的配置信息,因为缓存的配置信息已经被写入到文件系统中了,而不是在运行时从`.env`文件中读取。 因此,当使用`php artisan config:cache`命令后,您需要注意以下几点: 1. 在`.env`文件中修改配置信息后,需要再次运行`php artisan config:cache`命令,以重新缓存配置信息。 2. 如果您需要在代码中读取`.env`文件中的配置信息,应该使用`config()`辅助函数,而不是`env()`辅助函数。`config()`辅助函数可以从缓存中读取配置信息,而不需要从`.env`文件中读取。 3. 如果您需要在运行时动态修改配置信息,应该避免使用`php artisan config:cache`命令,而应该使用`php artisan config:clear`命令清除缓存。这样可以确保应用程序在运行时能够动态读取`.env`文件中的配置信息。 总之,如果您需要在 Laravel 应用程序中使用`.env`文件中的配置信息,请考虑使用`config()`辅助函数,并避免使用`php artisan config:cache`命令。如果确实需要使用`php artisan config:cache`命令来缓存配置信息以提高应用程序的性能,请注意上述注意事项。 ***** ### 数据库表的主键不是自增类型 在 Laravel 中,如果您的数据库表的主键不是自增类型,则在使用`create`方法创建新记录时,`create`方法将不会自动更新模型实例的主键 ID 属性。因此,如果您需要访问新记录的主键 ID 值,请手动指定主键 ID 值并在创建新记录后查询该记录。 以下是一个手动指定主键 ID 值并查询该记录的示例: ``` // 手动指定主键 ID 的值为 100 $user = User::create([ 'user_id' => 100, 'name' => 'John Doe', 'email' => 'john.doe@example.com', ]); // 使用指定的主键 ID 查询新记录 $user = User::find(100); // 访问新记录的主键 ID 值 $userId = $user->user_id; ``` 在这个例子中,我们手动指定了主键 ID 的值为 100,然后使用`create`方法创建了新记录。由于我们手动指定了主键 ID 的值,`create`方法将不会自动更新模型实例的主键 ID 属性。因此,我们使用指定的主键 ID 值来查询新记录,并将查询结果保存到`$user`变量中。最后,我们从`$user`变量中获取新记录的主键 ID 值,并将其保存到`$userId`变量中。 请注意,如果您手动指定的主键 ID 值已经存在于数据库中,`create`方法将抛出`Illuminate\Database\QueryException`异常。因此,您需要确保手动指定的主键 ID 值是唯一的。 ***** ### carbon 的易错地方 ``` $now = Carbon::now(); $tomorrow= $now->addDays(1); 此时$now 已经不再是当前时间,而是当前时间加一天 如果希望$now 的值不受影响,可以参考如下操作 $now->copy()->addDays(1) 或者 (clone $now)->addDays(1) ```