首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么 Laravel 这么优秀?

因为我们已经完成了数据字段的定义、的关系、以及最重要的一步:如何将数据及数据之间的关系写入数据库,下面简单的来介绍下在 Laravel 是如何完成的。...比如你在上一次变更操作错误的设置了某个的索引,那我理解的正确的做法不是回滚,而是创建一个新的迁移文件,并在新的迁移文件 ALTER 之前的修改。...ID 为 1 的课程及它所关联的教师及学生;这将产生 3 条 SQL操作,其中还包含了一条跨中间(course_student)的查询,而这过程我们不需要做任何操作,Laravel 会自动根据你...会直接帮我们验证并返回错误信息,如下面的 teacher_id 在数据库并不存在。... Laravel 我们可以非常方便的为每一个 API 编写功能测试,如下面我们为创建课程编写的 HTTP 测试: uses(RefreshDatabase::class); it('create

16010

Laravel创建数据库结构的例子

1、简介 迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库结构,迁移通常和Laravel的schema构建器结对从而可以很容易地构建应用的数据库结构。...Laravel 的Schema门面提供了与数据库系统无关的创建和操纵的支持, Laravel 所支持的所有数据库系统中提供一致的、优雅的、平滑的API。...–table和–create选项可以用于指定名以及该迁移是否要创建一个新的数据。...在这两个方法你都要用到 Laravel 的schema构建器来创建和修改,要了解更多Schema构建器提供的方法,参考其文档。下面让我们先看看创建flights的简单示例: <?...此外,SQLite数据库暂不支持单个迁移删除或修改多个列。 7、索引 创建索引 schema构建器支持多种类型的索引,首先,让我们看一个指定列值为唯一索引的例子。

5.5K21
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel5.7 数据库操作迁移的实现方法

简介 所谓迁移就像是数据库的版本控制,这种机制允许团队简单轻松的编辑并共享应用的数据库结构。迁移通常和 Laravel 的 schema 构建器结对从而可以很容易地构建应用的数据库结构。...Laravel 的 Schema 门面提供了与数据库系统无关的创建和操纵的支持, Laravel 所支持的所有数据库系统中提供一致的、优雅的、流式的 API。...在这两个方法你都要用到 Laravel 的 Schema 构建器来创建和修改,要了解更多 Schema 构建器提供的方法,查看其文档。下面让我们先看看创建 flights 的简单示例: <?...- collation = ‘utf8_unicode_ci’; 指定数据的字符序(MySQL) $table- temporary(); 创建临时(除SQL Server) 重命名/删除 要重命名一个已存在的数据...'); Schema::dropIfExists('users'); 通过外键重命名表 重命名表之前,需要验证该包含的外键迁移文件中有明确的名字,而不是 Laravel 基于惯例分配的名字。

3.7K31

3分钟短文:书接上回,Laravel数据库迁移的那些个小技巧

引言 使用laravel的数据库迁移功能进行创建,和迁移回滚之后,我们继续说说设计 结构的更改之后的处理。以及如何为数据库填充一些伪数据作为测试。...比如我们创建的 events , 如果在迁移文件内添加字段,代码如下: [pic] 我们在数据库中间的位置添加了一个 venue 字段。...指定迁移开始和回滚所要执行的动作, 我们仅仅是添加一个字段,或者回滚的时候,删除一个字段,代码如下图: [pic] 完成后命令行执行迁移指令: php artisan migrate 输出结果如下:...大家应该不陌生SQL语句追加字段的语法: ALTER TABLE contacts ADD last_name varchar(40) NOT NULL AFTER contact_id; laravel...的迁移指令也允许我们指定某个追加的字段位于某个列之后: $table->boolean('enabled')->after('name'); 迁移状态 查看当前数据库的迁移状态,会让我们查看创建迁移文件哪些被应用了

1.7K30

Laravel5.2之Demo1——URL生成和存储

学习主题 该demo主要涉及如下几个知识点: 创建数据库并迁移数据 创建表单,学习Laravel的blade模板引擎 创建名为Link的模型Model 保存数据进入数据库 从数据库获得...URL链接并重定向 1、创建数据库并迁移数据表单 迁移(Migrations)其实就是数据库(Database)的版本控制,允许团队修改数据库架构,并保存当前数据库最新架构信息,为了创建迁移创建的...(4)、使用Laravel的Artisan CLI工具命令创建migrations迁移文件,可以终端进入项目根目录输入php artisan命令查看Artisan命令列表。...当执行数据迁移命令php artisan migrate时执行的是up()方法;当执行回滚上一次迁移命令php artisan migrate:rollback时执行的是down()方法,该命令具有破坏性会删除...,这是因为laravel会自动把这个变量和视图模板绑定,这errors是个特殊的变量,form.blade.php视图中添加上验证错误信息代码。

24K31

Laravel系列4.2】查询构造器

Java ,最早的 Hibernate , .NET 的 Linq 都有这种写法。通过链式调用,来构造 SQL 语句进行数据库的操作。注意,这里还不是完全的 面向对象 的写法。...其实,查询构造器就相当于我们将原始 SQL 的操作进行了一次封装而已。而且,模型,其实内部调用的也是这个 查询构造器 。也就是说,查询构造器是介于 模型 和 原始语句 操作中间的一层。...我们又发现了一个设计模式 Laravel 框架的应用,意外不意外,惊喜不惊喜! 连查询 普通的连查询的使用还是非常简单的,我也就不多说了,下面的代码也有演示。...一般的连查询,我们只需要一个外键相对应即可,但是我的实际业务开发,还会有遇到多个键相对应的情况,这个才是我们接下来说的重点问题。..."{$table} as {$as}" : $table; return $this; } 看到没有,已经开始构建原始SQL 语句了。

16.8K10

Laravel学习记录--数据库迁移

laravel 数据库迁移 数据迁移文件存放在database/migrations 特点:可进行版本回退,便于团队开发 通过数据迁移文件创建 1 创建数据库 配置.env文件选择数据库 DB_CONNECTION...上面操作只会生成迁移文件 此时数据库并没有生成数据c.我们需要编辑迁移文件,设置相应字段 使用 php artisan migrate...:在生成的过程如果报错长度不够 需app/providers/AppServiceProwvider.php设置字符默认长度 use Illuminate\Support\Facades\Schema...add_quantity_to_c --table=c//创建迁移文件 对迁移文件进行编辑,插入或删除字段 up()方法 $table->integer(‘字段’) down()方法 $table->...():删除数据,再次执行所有迁移文件(5.5)( 删除(drop->migrating)) install() 重置并重新运行所有的migrations 重置前需删除migrations——重置migrations

1K20

Laravel学习基础之migrate的使用教程

前言 大家都知道,现在的开发测试都是讲究多人团队协作完成,每个人都有本地环境,以前我们一般是手动的添加数据,比如在数据库查询器中使用sql语句进行数据插入。...:migration create_users_table 意思:创建一个迁移,其实就是创建一张名为users的。.../【当下浏览的服务器和开发工具是哪些】/和以前用php语句创建一样,我们可以2014_10_12_000000_create_users_table.php这个文件写上我们要创建的字段及约束条件...–table和–create选项可以用于指定名以及该迁移是否要创建一个新的数据。...迁移结构 一个migration类包含两个方法up和down。 up主要包含创建的具体内容。 down中和前者相反。 Schema::create接受两个参数。

89310

Laravel之队列「建议收藏」

默认是sync,即同步的,直接处理,队列.要将其修改为对应的类型,如database,redis等 laravel学院文档地址 使用redis为例: 1,config/queue.php return...使用databases为例 为了使用database 队列驱动,需要一张数据库来存放任务,要生成创建迁移,运行 Artisan 命令queue:table ,迁移创建好了之后,使用migrate...,可以创建多个配置文件指示 Supervisor 如何监视进程,例如,让我们创建一个开启并监视queue:work 进程的laravel-worker.conf 文件: [program:laravel-worker...2.如果修改了代码,在后台队列是无效的,必须重启队列 php artisan queue:restart 这个命令依赖于缓存系统重启进度,默认情况下,APC CLI 任务无法正常工作,如果你使用...处理失败任务 创建一个 failed_jobs 迁移 php artisan queue:failed-table 生成 php artisan migrate 操作完成后,databases

1.7K10

通过 Laravel 查询构建器实现简单的增删改查操作

通过前面几篇教程的预热,我们已经连接上数据库,创建好了数据,填充好了数据,接下来,就是 Laravel 应用实现对数据库的增删改查了。...原生 Statement 语句 我们可以通过 DB 门面提供的 statement 方法执行原生的 SQL Statement 语句,比如创建删除、修改数据操作: DB::statement('drop...Laravel ,我们不推荐这么做,因为这些对数据结构的操作可以通过数据库迁移功能来实现,而且那样做的话可维护性更好。..., [$id]); 和更新语句一样,如果删除成功,该方法返回受影响行数,删除记录不存在,返回 0,删除出错,抛出 QueryException 异常。...delete(); 同样,我们通过 where 方法指定删除 id >= 11 的记录,delete 方法返回受影响行数,具体逻辑和原生删除语句也是一样的。

4.1K20

Laravel迁移数据库!

我们本期要使用laravel自带的迁移功能,不操作任何数据库的条件下,完成基础的数据构建。 迁移文件 本文假设你已经正确地配置了环境变量文件,并且通过数据库配置项,系统已经可以正常连接到数据库了。...; 迁移文件准备完毕,要将该功能应用起来,只需命令行输入: php artisan migrate 系统就会执行迁移文件内的内容,并组装好SQL语句发送给数据库执行。...而在 laravel 里对一个空修改字段,完全可以通过,我们创建新的迁移文件,然后 up 方法内这样调用: $table->string('name', 100)->change(); 看,只用调用一个...nullable()->after('last_name'); 仅仅修改字段名,只需调用对应方法: $table->renameColumn('promoted', 'is_promoted'); 或者回滚方法对某些新增的字段进行删除...写在最后 本文介绍了laravel中使用迁移功能操作数据库的创建,修改,移除字段,删除等,把开发者从手动维护数据库的状态解脱出来。这样也为团队协作时的有章可循做了铺垫。

95110

Laravel迁移数据库!

我们本期要使用laravel自带的迁移功能,不操作任何数据库的条件下,完成基础的数据构建。 迁移文件 本文假设你已经正确地配置了环境变量文件,并且通过数据库配置项,系统已经可以正常连接到数据库了。...; 迁移文件准备完毕,要将该功能应用起来,只需命令行输入: php artisan migrate 系统就会执行迁移文件内的内容,并组装好SQL语句发送给数据库执行。...而在 laravel 里对一个空修改字段,完全可以通过,我们创建新的迁移文件,然后 up 方法内这样调用: $table->string('name', 100)->change(); 看,只用调用一个...nullable()->after('last_name'); 仅仅修改字段名,只需调用对应方法: $table->renameColumn('promoted', 'is_promoted'); 或者回滚方法对某些新增的字段进行删除...写在最后 本文介绍了laravel中使用迁移功能操作数据库的创建,修改,移除字段,删除等,把开发者从手动维护数据库的状态解脱出来。这样也为团队协作时的有章可循做了铺垫。

1.1K00

cell-blog 开发记录

disks 处添加以下配置后执行php artisan storage:link来创建软链接(windows 和 linux 的软链接不一样不能直接复制!)...然后运行下面的命令来发布资源: 1 php artisan admin:publish 该命令会生成配置文件config/admin.php,可以在里面修改安装的地址、数据库连接、以及名,建议都是用默认配置不修改...然后运行下面的命令完成安装: 1 php artisan admin:install 迁移文件创建 1 2 3 4 5 6 7 8 9 php artisan make:migration create_articles_table...事件允许你一个指定模型类每次保存或更新的时候执行代码。 retrieved 事件会在从数据库获取已存在模型时触发。当一个新模型被首次保存的时候,creating 和 created 事件会被触发。...如果一个模型已经在数据库存在并调用 save 方法,updating/updated 事件会被触发,无论是创建还是更新,saving/saved 事件都会被触发。

86040

MySQL-大批量数据如何快速的数据迁移

由于生产库数据量比较大,我们也没法直接在生产库下二次开发(胆小),我们打算从生产库环境下迁移需要用到导入自己的开发环境下,迁移的是结构和数据,大概一个400M左右(300万条数据),全是InnoDB...针对如上的迁移数据的需求,我们尝试过直接通过从生产库下导出SQL文件,直接在本地执行SQL,由于数据量太大了,该方法根本不可行,一个的导入大概需要7、8个小时。...从生产库导出SQL文件,这个耗时不是很长,强烈建议导出的Insert语句为多值形式的,这样导入的时候效率比较高。...由于我们测试环境也没要求非得多快的查询数据,所以当SQL结构存在索引,我们可以考虑将索引删除,要是需要考虑到性能的话,也可以先删除,等导入过后再重新进行索引的创建。 ? 3....到这里我们已经修改多值插入、删除索引、改完存储引擎,准备好SQL文件后直接在MySQL执行会执行不了,会抛出ERROR : (2006, 'MySQL server has gone away')错误

2.2K31

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

引言 我们不止一次系列文章中讲到模型的“软删除”功能,因为现实场景为了保证数据可追溯,我们几乎不会对数据库进行物理删除删除数据有可能会造成数据一致性的破坏,进而导致业务逻辑无法跑通。...真实的SQL如下: DELETE FROM events WHERE id = 12; laravel提供了许多语法糖,上面使用 find 和 delete 两个步骤,可以缩减为一个方法 destroy...软删除 许多情况下,你不会真正想要从数据库删除记录,而是用一种不再在应用程序显示它们的方式对其进行注释。这就是所谓的软删除。...首先创建一个新的迁移,将名为deleted_at的列添加到events: php artisan make:migration add_soft_delete_to_events --table=events...,通过创建迁移文件,修改数据库,追加软删除字段。

2.1K00

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

但是,将会很难映射到创建/检索/更新/删除模式。请记住,URL不应包含动词,资源不一定是的行。要记住的另一件事是,您不必为每个资源实施每个操作。...迁移和模型(Migrations and Models) 实际编写第一次迁移之前,请确保为此应用程序创建了一个数据库,并将其凭据添加到.env位于项目根目录的文件。...201:创建对象。有用的store行动(action)。 204: 内容。当一个动作执行成功,但没有内容返回。 206:部分内容。当您必须返回分页的资源列表时很有用。 400: 错误的请求。...注销 使用我们当前的策略,如果令牌错误或丢失,用户应该收到未经身份验证的响应(我们将在下一节实现)。因此,对于一个简单的注销端点,我们将发送令牌,它将在数据库上删除。...我建议您在开始获取迁移错误时,测试离开SQLite,或者您希望使用更强大的测试,而不是执行运行。 我们还将在每次测试之前运行migrations 。

20.3K20

MySQL DDL Online Schema Change—gh-ost介绍

模拟从库单线程应用较慢; 需要更大的存储空间 gh-ost定义: gh-ost是针对MySQL对主库影响很小,trigger的online schema change解决方案。...创建ghc结尾的,存数据迁移的信息,以及binlog信息等 2、初始化阶段: 初始化stream的连接,添加binlog的监听 3、迁移阶段: 创建_gho结尾的临时,执行DDL_gho结尾的临时上...`t` force index (`PRIMARY`) where `id` >=1 and `id` <= 1000 lock in share mode; 数据迁移过程sql映射关系 源操作...步骤为: 1)主库上创建_xxx_gho、_xxx_ghc,并修改_xxx_gho结构; 2)从slave上读取binlog日志事件,将变更应用到主库上的_xxx_gho; 3)主库上读源的数据写入..._xxx_gho:insert into ignore...select; 4)主库上完成切换; b.

1.3K31
领券