本文以laravel5.4为例,建议刚开始学习Laravel框架的朋友先不使用Artisan进行一次项目开发。
简介
Artisan
是Laravel
内置的命令行接口。它提供了一些有用的命令协助您开发,它是由强大的Symfony Console
组件所驱动。利用它,我们可以快速的新建Controller
、Model
等类。
- 查看所有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方法:
Laravel
中Model
对应的表名是其英文单词的复数形式(内部使用了英文词语的单复数映射),例如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