本文以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