Laravel - Artisan命令学习

本文以laravel5.4为例,建议刚开始学习Laravel框架的朋友先不使用Artisan进行一次项目开发。

简介

ArtisanLaravel 内置的命令行接口。它提供了一些有用的命令协助您开发,它是由强大的 Symfony Console 组件所驱动。利用它,我们可以快速的新建 ControllerModel等类。

  • 查看所有artisan命令

php artisan list

  • 查看当前laravel的具体版本

php artisan --version

  • 应用进入维护模式

php artisan down

  • 应用推出维护模式

php artisan up

下面是开发中更常用更重要的部分:

  • 创建RESTful资源的控制器和方法

php artisan make:controller UserController

  • 生成表文件

php artisan make:migration create_article_table

  • 执行迁移,创建数据库表结构

php artisan migrate

  • 执行单文件数据填充

php artisan db:seed --class=AuthorTableSeeder

  • 项目开发中超实用的命令(回滚所有迁移并重新迁移生成种子):

php artisan migrate:refresh --seed

  • 创建 Eloquent 模型类:

php artisan make:model User

  • 创建一个新的服务提供者类

php artisan make:provider name

  • 创建一个新的表单请求类

php artisan make:request name

更多用法

  • 建议创建migration迁移文件时追加--create=articles参数,这样会使新的迁移文件添加默认格式。

  • 数据迁移表生成后,在database\migrations目录存在着2016_09_10_020228_create_article_table.php。该文件只有迁移前编写的up方法和删除或者覆盖数据表使用回滚时的down方法,我们只需修改up方法:

  • LaravelModel 对应的表名是其英文单词的复数形式(内部使用了英文词语的单复数映射),例如 UserModel 在数据库中的体现就是users表。接下来让我们把 PHP 代码变成真实的 MySQL 中的数据表,运行命令:php artisan migrate

  • 执行成功后,articles 表已经出现在数据库里了。articles里字段名可以改为你想要的名字,建议统一命名。

  • 完成后数据库里还会多了个 migrations 表,用来记录数据库迁移信息,并且 database/migrations/ 目录下记录着采用 RoR 思想诞生的迁移文件,这些文件不允许删除,否则不利于交付和迭代。

Seeder

  • database/seeds/下则对应相应的数据库改动信息,包含数据。
  • Seeder 解决的是我们在开发 web 应用的时候,需要手动向数据库中填入假数据的繁琐低效问题。运行以下命令创建 Seeder 文件:

php artisan make:seeder
ArticleSeeder

我们会发现database/seeds/里多了一个文件 ArticleSeeder.php,修改此文件中的 run 函数为:

public function run() {
    DB::table('articles')->delete();
    for ($i=0; $i < 10; $i++) {
        \App\Article::create([ 'title' => 'Title '.$i, 'body' => 'Body '.$i, 'user_id' => 1, ]);
    }
}

上面代码中的 \App\Article 为命名空间绝对引用。接下来我们把ArticleSeeder注册到系统内。修改database/seeds/DatabaseSeeder.php
中的 run 函数为:

public function run() {
    $this->call(ArticleSeeder::class);
}

由于database目录没有像app 目录那样被composer注册为psr-4自动加载,采用的是psr-0 classmap方式,所以我们还需要运行以下命令把ArticleSeeder.php加入自动加载系统,避免找不到类的错误:

composer dump-autoload

然后执行 seed:

php artisan db:seedSeeded: ArticleSeeder

这时候刷新一下数据库中的 articles 表,会发现已经被插入了 10 行假数据。

参考:

1、Laravel 5.1 LTS 速查表
https://cs.phphub.org/#artisan

2、Laravel 5.0 中文文档:Artisan 命令行接口
http://laravel-china.org/docs/5.0/artisan

php artisan key:generate重新生成秘钥

php artisan make:controller UserController

3、2016 版 Laravel 系列入门教程(一)
https://github.com/johnlui/Learn-Laravel-5/issues/4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容