当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你可能会碰到下面这个错误: [Illuminate\Database\QueryException] SQLSTATE...key length is 767 bytes (SQL: alter table users add unique users_email_unique(email)) [PDOException] SQLSTATE...access violation: 1071 Specified key was too long; max key length is 767 bytes 我们可以在 AppServiceProvider.php...文件里的 boot 方法里设置一个默认值: php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Schema
Laravel 在 config/database.php 文件中我们可看到数据库的配置 ?...依然是一片熟悉的 env 函数,比如说数据库的 host 、port 、database 、username、password 但是还有一些并没有用 env 函数,比如说charset 、 prefix...[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071...error or access violation: 1071 Specified key was too long; max key length is 767 bytes 需要找到 config/database.php...除了数据库还有两个需要改的打开 config/app.php文件把 timezone 改为 PRC ,laravel 默认的时区是 UTC中国的时区是 PRC 如果没有改的话, 那数据库存自动生成的时间会和我们的实际相差
,默认是 0.01,即 1%,你可以将其调小,但是错误率越低,所需要的集合容量就越大,占用的存储空间就越大; initial_size:初始化的集合容量(集合中存放的元素数量),默认是 100,该值越大...php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate...migrate 在数据库中创建这张数据表,然后创建 CrawlSource 模型类对应的模型工厂定义填充字段: sail artisan make:factory CrawlSourceFactory...db:seed 为 crawl_sources 表插入 10000 条记录。...php namespace App\Jobs; use App\Models\CrawlSource; use Illuminate\Bus\Queueable; use Illuminate\Contracts
--seed #通过向refresh命令提供step选项,可以回滚并重新迁移有限数量的迁移。...artisan make:seeder Users2TableSeeder #执行一个seed php artisan db:seed --class=UsersTableSeeder #执行所有...seed,会执行DatabaseSeeder.php php artisan db:seed #您还可以使用migrate:fresh命令和——seed选项来为数据库播种,这将删除所有的表并重新运行所有的迁移...要强制种子程序在没有提示的情况下运行,使用——force标志 php artisan db:seed --force cat database/seeders/DatabaseSeeder.php php namespace Database\Seeders; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder
php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\...命令: $ php artisan db:seed --class=ArticlesTableSeeder 让我们重复一下之前的过程来创建一个用户seeder: class UsersTableSeeder...artisan db:seed,它将在run()方法中运行所有被调用的类。...403:禁止 用户已通过身份验证,但没有执行操作的权限。 404: 未找到。当没有找到资源时,这将由Laravel自动返回。 500: 内部服务器错误。...在我们的config/database.php文件中,我们需要database将sqlite配置中的字段设置为:memory:: ...
1 2 3 4 5 6 7 8 APP_URL=http://cell.blog DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3307 DB_DATABASE...=cell_blog DB_USERNAME=root DB_PASSWORD=123456 下载 laravel-admin 1 2 cd cell-blog composer require encore...然后运行下面的命令完成安装: 1 php artisan admin:install 运行这个命令的时候,如果遇到了下面的错误: SQLSTATE[42000]: Syntax error or access...添加默认值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades
独立的填充命令如下: php artisan db:seed php artisan db:seed --class=UsersTableSeeder 上述第一个 Artisan 命令会以 DatabaseSeeder...这可以通过不指定值的 --seed 选项来实现: php artisan migrate --seed php artisan migrate:refresh --seed 第一条命令用于执行迁移命令时运行填充器类...这样,我们就编写好了第一个填充器类,接下来,我们可以通过指定填充器类的方式将这条记录插入到数据库: php artisan db:seed --class=UsersTableSeeder 你还可以在...然后运行如下 Artisan 命令即可: php artisan db:seed 这样,就可以在数据表 users 中看到新填充的用户记录了: 当然,我们可以在 UsersTableSeeder 类中定义多条插入语句来一次性插入多条记录...比如我们还是通过运行 php artisan db:seed 命令来填充数据到数据库,此时,就可以看到新填充了 5 条记录: 注:本教程都以 Laravel 自带的 users 及对应 User 模型类为例进行演示
.*" 在.env文件中配置数据库连接 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME...=root DB_PASSWORD=De5RJZWSjJF42FkC 数据库迁移 # 在项目根目录执行 php artisan migrate 数据填充 填充前准备 执行填充 php artisan...db:seed Dingo Api 相关 安装 Dingo Api composer require "dingo/api" 在 config 目录生成配置文件api.php php artisan...JWT_SECRET php artisan jwt:secret 修改你的 app/Models/User.php php namespace App\Models; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent
· 错误:1208 SQLSTATE: HY000 (ER_DROP_DB_WITH_READ_LOCK) 消息:当线程保持为全局读锁定时,不允许DROP DATABASE。...· 错误:1209 SQLSTATE: HY000 (ER_CREATE_DB_WITH_READ_LOCK) 消息:当线程保持为全局读锁定时,不允许CREATE DATABASE。...· 错误:1230 SQLSTATE: 42000 (ER_NO_DEFAULT) 消息:变量'%s'没有默认值。...· 错误:1364 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_FIELD) 消息:字段'%s'没有默认值。...· 错误:1423 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_VIEW_FIELD) 消息:视图'%s.%s'基本表的字段没有默认值。
看看有没有预加载会有什么不同。...、表关联和测试数据填充器Seeder 依次输入指令: php artisan make:model Merchant -m php artisan make:model Phone -m php artisan...make:model Shop -m php artisan make:model Product -m 写上表字段和表关联: class CreateMerchantsTable extends Migration...: php artisan make:seeder MerchantTableSeeder php artisan make:seeder PhoneTableSeeder php artisan make...::table('products')->insert($datas); } } php artisan db:seed 3.写个简单View视图 (1)用Repository Pattern
php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\...php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\...php use Illuminate\Database\Seeder; class TagsTableSeeder extends Seeder { /** * Run the database...执行命令php artisan db:seed --class=TagsTableSeeder 生成tag的假数据。...创建标签 执行命令php artisan make:job TagFormFields 创建一个表单数据字段创建Job,生成文件在app\Jobs\TagFormFields.php目录下。
在tests/TestCase.php中可以在setUp()设置数据库重装操作: abstract class TestCase extends \Illuminate\Foundation\Testing...$class = 'DatabaseSeeder', array $tables = []): void { $this->artisan('db:seed',...laravel的db:seed命令没有--tables这个options,所以需要扩展\Illuminate\Database\Console\Seeds\SeedCommand: class SeedCommand...extends \Illuminate\Database\Console\Seeds\SeedCommand { public function fire() { if...\Providers\ConsoleSupportServiceProvider::registerSeedCommand()中注册的command.seed,然后在config/app.php中注册:
Database 查询构建器 上文我们说到执行 DB::table('users')->get()是由Connection对象执行table方法返回了一个QueryBuilder对象,QueryBuilder...\Database\Query\Grammars\Grammar: SQL语法编译器 和 Illuminate\Database\Query\Processors\Processor: SQL结果处理器...接下我们到QueryBuilder类文件 \Illuminate\Database\Query\Builder.php里看看它里面的源码 namespace Illuminate\Database\Query...$original = $query->columns; //如果没有QueryBuilder里没制定查询字段,那么默认将*设置到查询字段的位置 if (is_null($query...、 wheres属性,那么我们见先来看看这三个属性的编译器: /** * 编译Select * 部分的SQL * @param \Illuminate\Database\Query\Builder
错误:1244 SQLSTATE: HY000 (ER_CORRUPT_HELP_DB) 消息:帮助数据库崩溃或不存在。...错误:1364 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_FIELD) 消息:字段’%s’没有默认值。...错误:1394 SQLSTATE: HY000 (ER_VIEW_NO_INSERT_FIELD_LIST) 消息:不能在没有字段列表的情况下插入联合视图’%s.%s’。...错误:1423 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_VIEW_FIELD) 消息:视图’%s.%s’基本表的字段没有默认值。...错误:1462 SQLSTATE: HY000 (ER_FIELD_NOT_FOUND_PART_ERROR) 消息:在表中未发现分区函数字段列表中的字段。
之前写Java的mybatis各种sql的和字段的处理,试过php开发之后,确实很快啊。而且我也是从Java,golang裸转的php。这里不谈那种语言好坏之分。..."; }); 浏览器访问:http://127.0.0.1:8000/home/index 4.一些错误处理 lavarel框架要对应php的版本,否则就有一系列的错误~ composer无法安装依赖包...php namespace App\Models; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent...DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=laravel-test DB_USERNAME=root DB_PASSWORD...框架没有好坏之分,Java也有更简洁用注解去开发。 我们下期文章再见~
引言 前两期为了说明laravel框架提供的数据库操作能力,直接使用DB门面操作, 而没有引入更为强大的eloquent orm功能。...创建一个模型类非常简单,只用继承系统的模型就可以了: use Illuminate\Database\Eloquent\Model; class Contact extends Model {} 因为遵循的是约定大于配置的惯例...使用下面的指令: php artisan make:model Contact 这样会在 App 命名空间下生成一个标准的模型文件 Contact.php,内容如下: namespace App; use...Illuminate\Database\Eloquent\Model; class Contact extends Model { // } 如果数据库表还没有创建,你想要把迁移文件的骨架代码也生成出来...等等标准字段,而在数据库表的字段默认值内允许为NULL,或者默认为NULL。
laravel 数据库迁移 数据迁移文件存放在database/migrations 特点:可进行版本回退,便于团队开发 通过数据迁移文件创建表 1 创建数据库 配置.env文件选择数据库 DB_CONNECTION...=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=ches DB_USERNAME=root DB_PASSWORD=root 2.创建数据库迁移文件表...c.我们需要编辑迁移文件,设置相应字段 在使用 php artisan migrate 成功生成表 数据库迁移文件 在这个文件有 up/down方法 up()://...1.创建迁移文件 php artisan make:migration add_quantity_to_c --table=c//创建迁移文件 对迁移文件进行编辑,插入或删除字段 up()方法...$table->integer(‘字段’) down()方法 $table->dropColumn(‘字段’); up添加了几个字段,down相对删除对应字段,便于回退操作 2.更新表 php artisan
领取专属 10元无门槛券
手把手带您无忧上云