问题描述
数据库字段类型为 datetime,faker 格式为 Y-m-d H:i:s,factory::make() 出来的也是 Y-m-d H:i:s,但是 toArray() 之后变成了 c,c 类似 2024-01-02T03:04:05.000000Z。insert(c) 时候报了标题的信息。
解决方法
方法1:
# /config/database.php
'mysql' => [
'strict' => false, // true 改为 false
],
方法2:
# /app/Models/User.php
protected $casts = [
'created_...
分类为 Laravel 的文章:
# app/Providers/AppServiceProvider.php
public function boot()
{
DB::listen(function ($query) {
$location = collect(debug_backtrace())->filter(function ($trace) {
return !str_contains($trace['file'], 'vendor/');
})->first(); // grab the first element of non vendor/ calls
$bindings = implode(", ", $query->bindings); // format t...
.env
APP_VERSION=v2.0.1 beta
app/Http/Kernel.php
protected $middleware = [
// ...
\App\Http\Middleware\Version::class, // 在 http header 中返回当前接口的 Git 版本
];
app/Http/Middleware/Version.php
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class Version
{
/**
* 在 header 中添加项目 Git 库的 commit id
*
* @para...
介绍
laravel-nestedset(Nested Set Model)
安装
composer require kalnoy/nestedset
用法
// database/migrations/2020_08_10_155445_create_category_table.php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCategoryTable extends Migration
{
public function up()
{
Schema::create('categor...
安装 Laravel
composer create-project laravel/laravel ./
修改依赖的下载源
composer global require slince/composer-registry-manager
composer repo:ls
composer repo:use aliyun
添加项目依赖
composer require doctrine/dbal # 增加修改表结构功能
composer require zedisdog/laravel-schema-extend # 增加表注释功能
composer require laravel/passport # OAuth
composer require spatie/laravel-permission # Permis...
问题
$this->validate
是因为所有控制器都使用了 ValidatesRequests Trait,所以可以使用这个 Trait
中提供的 validate() 方法
那 \App\Http\Requests 里的 validate () 方法是从哪里来的?最终实现是相同的吗?为什么会有两种写法?(我知道Validator::make() 是为了在 控制器外边用)
Laravel 代码如下:
$request->validate()
protected function validateLogin(\App\Http\Requests $request)
{
$request->...
我的 /etc/hosts
192.168.10.10 api.local
症状:每个地址都要 pending 5 秒左右,而直接使用 Chrome 打开又很快。
网上给的方法是使用 nfs 类型的 folders,经测试无效,使用 curl 查到问题出在域名解析上,最终在这里找到了原因:
.local 结尾的主机名都将被视为Bonjour主机,而不是通过查询“网络”偏好设置中的DNS服务器条目。
解决办法:
不使用 .local 或者为 .local 追加一个 ipv6 的地址。ipv6 条目写在原 ipv4 记...
重置 vagrant box
vagrant provision
vagrant reload --provision
配置文件
Homestead.yaml - 主要配置信息文件,包含共享文件夹、站点、数据库等
after.sh - 盒子重置后(provision)调用的 shell
aliases - 盒子重置后(provision)添加至虚拟机的 ~/.bash_aliases
after.sh
#!/bin/sh
# If you would like to do some extra provisioning you may
# add any commands you wish to this file a...
中文 faker
// config\app.php
'faker_locale'=>'zh_CN',
批量赋值不使用 fillable 属性
DB::table('articles')->truncate();
Article::unguard();
factory(Article::class, 10)->create();
Article::reguard();
软删除
# Trait // app/User.php
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Authenticatable
{
use SoftDeletes;
}
# Migration
$table->softDele...
class LoginController extends Controller
{
protected function validateLogin(\App\Http\Requests $request)
{
$request->validate([
'username' => 'required|string',
'password' => 'required|string',
'captcha' => ['required', 'captcha'],
], [
'captcha.required' => '验证码不能为空',
'captcha....
设置镜像源
# 国内源
composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 恢复到默认的官方源
# composer config -g --unset repos.packagist
composer 源切换工具
composer global require slince/composer-registry-manager
composer repo:ls
composer repo:use huawei
替换包地址中的 git:...