artisan 命令使用总结

artisan 命令使用过程的一些记录!


==数据迁移==

之前一直对数据迁移很感兴趣,也看过了几遍文档,一直没怎么理解,也没怎么深入研究,今天得空,认真看了文档,百度了一些相关文章 点击这里,亲自试了一些常用的操作,特写此文章记录


迁移的创建、执行和回滚
  • 创建迁移
php artisan make:migration create_news_table

错误写法:

php artisan migrate:make create_news_table

示例结果:

Paste_Image.png

  • 执行迁移
php artisan migrate

示例结果:

Paste_Image.png

如果继续执行 php artisan migrate ,因为没有新的可执行 migrate ,将不执行任何动作

示例结果:

Paste_Image.png

  • 执行回滚
php artisan migrate:rollback

示例结果:

Paste_Image.png

  • 执行修改字段类型

执行修改字段类型的时候需要composer requires doctrine/dbal

安装doctrine/dbal:

Paste_Image.png

数据库的记录(migrations)
  • 数据库记录如下

每执行一次迁移(php artisan migrate),batch 加 1(不管这次执行了几个迁移文件,一次执行的文件batch 一样),

数据库保存结果如下:
Paste_Image.png

如果执行回滚,数据库最近一次执行的所有迁移将进行回滚,回滚完成,数据库迁移记录结果将会被删除!如果手动删除数据库记录,则回滚的时候,将不对该迁移回滚,并且对应的迁移在再次执行 php artisan migrate的时候将会重新被执行,所以最好不要随意删除 migrations 表中的数据

执行迁移回滚原理

通过artisan 建立的迁移文件中包括两个function (up,down),其中up 是在执行迁移的时候执行的,而down 也刚好就是对立的,回滚的时候执行

示例:

例如1:
public function up(){
    //创建表,执行迁移的时候执行
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
    });
}

public function down(){
    //删除表,回滚的时候执行
    Schema::drop('users');
}

例如2:

public function up()
{
    Schema::table('users', function($table) {
        $table->renameColumn('email', 'user_email');    //修改字段名称
    });
}

public function down()
{
    Schema::table('news', function($table) {
        $table->renameColumn('user_email', 'email');    //回滚的时候再修改成原来的
    });
}
总结
  • 迁移是用来记录每次的数据库操作的,不管是创建表,还是修改一个字段名称,都需要单独创建一个迁移文件
  • 迁移文件中,包含一个up 和一个down,是两个对立的方法,如果up创建表,down就是删除表,反之亦然!
  • 每次执行迁移都会记录到迁移记录表中(magrition 表),回滚则删除相应记录通过batch 来判断是那一批迁移

==vendor:publish==

用来将包中的 配置文件,或者预定义模板进行发布 配置文件一般发布到 config 目录,模板一般发布到 resource/views/vendor 目录

php artisan vendor:publish

比如邮件模板 可以 发布到 vendor ,进行修改,模板将被替换为 最新修改的模板

注册发布的方式

在包的 服务提供者的 boot 方法 中注册

public function boot()
{
    //
    $this->publishes([
        __DIR__ . '/config/qcloudcos.php' => config_path('qcloudcos.php'),
    ]);
}

错误解决

执行数据填充报错

php artisan db:seed

[ReflectionException]     

  Class ArticleCatSeeder does not exist
  • 先执行 composer dump-autoload,在执行就ok 了

==php artisan 命令总结==

全局相关
php artisan:显示详细的命令行帮助信息,同 php artisan list
php artisan –help:显示帮助命令的使用格式,同 php artisan help
php artisan –version:显示当前使用的 Laravel 版本
php artisan changes:列出当前版本相对于上一版本的主要变化
php artisan down:将站点设为维护状态
php artisan up:将站点设回可访问状态
php artisan optimize:优化应用程序性能,生成自动加载文件,且产生聚合编译文件 bootstrap/compiled.php
php artisan dump-autoload:重新生成框架的自动加载文件,相当于 optimize 的再操作
php artisan clear-compiled:清除编译生成的文件,相当于 optimize 的反操作
php artisan migrate:执行数据迁移
php artisan routes:列出当前应用全部的路由规则
php artisan serve:使用 PHP 内置的开发服务器启动应用 【要求 PHP 版本在 5.4 或以上】
php artisan tinker:进入与当前应用环境绑定的 REPL 环境,相当于 Rails 框架的 rails console 命令
php artisan workbench 组织名/包名:这将在应用根目录产生一个名为 workbench 的文件夹,然后按 组织名/包名 的形式生成一个符合 Composer 标准的包结构,并自动安装必要的依赖【需要首先完善好 app/config/workbench.php 文件的内容】
功能相关
php artisan cache:clear:清除应用程序缓存
php artisan command:make 命令名:在 app/commands 目录下生成一个名为 命令名.php 的自定义命令文件
php artisan controller:make 控制器名:在 app/controllers 目录下生成一个名为 控制器名.php 的控制器文件
php artisan db:seed:对数据库填充种子数据,以用于测试
php artisan key:generate:生成一个随机的 key,并自动更新到 app/config/app.ph 的 key 键值对
php artisan migrate:install:初始化迁移数据表
php artisan migrate:make 迁移名:这将在 app/database/migrations 目录下生成一个名为 时间+迁移名.php 的数据迁移文件,并自动执行一次 php artisan dump-autoload 命令
php artisan migrate:refresh:重置并重新执行所有的数据迁移
php artisan migrate:reset:回滚所有的数据迁移
php artisan migrate:rollback:回滚最近一次数据迁移
php artisan session:table:生成一个用于 session 的数据迁移文件
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!