本文以laravel5.4為例,建議剛開始學(xué)習(xí)Laravel框架的朋友先不使用Artisan進(jìn)行一次項(xiàng)目開發(fā)。
簡介
Artisan
是Laravel
內(nèi)置的命令行接口想幻。它提供了一些有用的命令協(xié)助您開發(fā),它是由強(qiáng)大的Symfony Console
組件所驅(qū)動话浇。利用它脏毯,我們可以快速的新建Controller
、Model
等類幔崖。
- 查看所有artisan命令
php artisan list
- 查看當(dāng)前
laravel
的具體版本
php artisan --version
- 應(yīng)用進(jìn)入維護(hù)模式
php artisan down
- 應(yīng)用推出維護(hù)模式
php artisan up
下面是開發(fā)中更常用更重要的部分:
- 創(chuàng)建
RESTful
資源的控制器和方法
php artisan make:controller UserController
- 生成表文件
php artisan make:migration create_article_table
- 執(zhí)行遷移食店,創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu)
php artisan migrate
- 執(zhí)行單文件數(shù)據(jù)填充
php artisan db:seed --class=AuthorTableSeeder
- 項(xiàng)目開發(fā)中超實(shí)用的命令(回滾所有遷移并重新遷移生成種子):
php artisan migrate:refresh --seed
- 創(chuàng)建
Eloquent
模型類:
php artisan make:model User
- 創(chuàng)建一個新的服務(wù)提供者類
php artisan make:provider name
- 創(chuàng)建一個新的表單請求類
php artisan make:request name
更多用法
建議創(chuàng)建migration遷移文件時(shí)追加--create=articles參數(shù),這樣會使新的遷移文件添加默認(rèn)格式赏寇。
數(shù)據(jù)遷移表生成后吉嫩,在database\migrations目錄存在著2016_09_10_020228_create_article_table.php。該文件只有遷移前編寫的up方法和刪除或者覆蓋數(shù)據(jù)表使用回滾時(shí)的down方法嗅定,我們只需修改up方法:
Laravel
中Model
對應(yīng)的表名是其英文單詞的復(fù)數(shù)形式(內(nèi)部使用了英文詞語的單復(fù)數(shù)映射)自娩,例如UserModel
在數(shù)據(jù)庫中的體現(xiàn)就是users表。接下來讓我們把PHP
代碼變成真實(shí)的MySQL
中的數(shù)據(jù)表渠退,運(yùn)行命令:php artisan migrate
忙迁。執(zhí)行成功后,
articles
表已經(jīng)出現(xiàn)在數(shù)據(jù)庫里了碎乃。articles
里字段名可以改為你想要的名字姊扔,建議統(tǒng)一命名。完成后數(shù)據(jù)庫里還會多了個
migrations
表梅誓,用來記錄數(shù)據(jù)庫遷移信息恰梢,并且database/migrations/
目錄下記錄著采用RoR
思想誕生的遷移文件佛南,這些文件不允許刪除,否則不利于交付和迭代嵌言。
Seeder
- database/seeds/下則對應(yīng)相應(yīng)的數(shù)據(jù)庫改動信息嗅回,包含數(shù)據(jù)。
- Seeder 解決的是我們在開發(fā) web 應(yīng)用的時(shí)候呀页,需要手動向數(shù)據(jù)庫中填入假數(shù)據(jù)的繁瑣低效問題妈拌。運(yùn)行以下命令創(chuàng)建 Seeder 文件:
php artisan make:seeder
ArticleSeeder
我們會發(fā)現(xiàn)database/seeds/里多了一個文件 ArticleSeeder.php,修改此文件中的 run 函數(shù)為:
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注冊到系統(tǒng)內(nèi)尘分。修改database/seeds/DatabaseSeeder.php
中的 run 函數(shù)為:
public function run() {
$this->call(ArticleSeeder::class);
}
由于database目錄沒有像app 目錄那樣被composer注冊為psr-4自動加載,采用的是psr-0 classmap方式丸氛,所以我們還需要運(yùn)行以下命令把ArticleSeeder.php加入自動加載系統(tǒng)培愁,避免找不到類的錯誤:
composer dump-autoload
然后執(zhí)行 seed:
php artisan db:seedSeeded: ArticleSeeder
這時(shí)候刷新一下數(shù)據(jù)庫中的 articles 表,會發(fā)現(xiàn)已經(jīng)被插入了 10 行假數(shù)據(jù)缓窜。
參考:
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