Artisan 是 Laravel 中自帶的命令行工具的名稱。它提供了一些對您的應用開發有幫助的命令。它是由強大的 Symfony Console 組件驅動的。爲了查看全部可用的 Artisan 的命令,您可使用 list 命令來列出它們:php
在腳本中執行php artisan list
能夠查看全部的命令linux
那麼熟悉linux的知道,無論什麼命令都有一個help命令,當運行的時候,突然之間,忘了的話,能夠執行help命令去查看一下咱們須要的命令,一樣的在laravel框架中也能夠去執行help命令去查看如:
php artisan help migrate
laravel
瞭解tp框架的同窗,能知道,若是去建立一個控制器,須要本身去手寫,命名空間,繼承類等
那麼在laravel中,還能夠利用artisan工具去執行,如建立一個MsgController
php artisan make:controller MsgController
執行以後,’app\http\Controllers’會多出一個MsgController,而且也準備好了方法增,刪,改,查,等若是不須要那怎麼辦呢?很簡單,一是直接刪除,二利用命令生成空白的控制器如:
php artisan make:controller --plain
程序員
可是,有的同窗會遇到這種狀況,如,一個項目分前臺和後臺,相應的控制器也須要放置在不一樣的目錄下,這種怎麼處理呢,若是用artisan工具?好比建立一個Admin\GoodsController數據庫
php artisan make:controller Admin\GoodsController
前提是在laravel項目中的App\Http\Controllers下已建立Admin文件夾,執行以後會發現,admin下多出GoodsController的文件,打開,發現命名空間也自動整理好;
這條命令指示,驗證了laravel框架的靈活性,開發者能夠隨意的去指定;bootstrap
做爲程序員,開發項目的同時,咱們須要去操做數據庫,那麼確定就與model有關係,那麼如何使用artisan工具去建立一個model呢?和控制器,大同小異,好比建立一個Msg的model瀏覽器
php artisan make:model Msg
在laravel中,它默認是放在App目錄下,那若是想要定義本身的文件夾呢和控制器也是同樣的咱們指定它的目錄便可,不過要注意的是把命名空間須要改變一下緩存
在laravel框架中,若是想要在瀏覽器中去響應控制器中的方法,那麼只須要,在App\routes.php中去指定路由便可,可是若是咱們使用資源路由,只需指定一條路由便可,而且,它也直接生成好多方法,但咱們是看不到的,那麼怎麼辦呢?
php artisan route:list
利用這條命令能夠查看全部的路由服務器
利用artisan工具建立中間件
首先在laravel中,中間件也是一個很是方便的東西,那麼中間件是什麼呢?
簡單的理解就是,中間件能夠放到咱們的控制器的方法前或後去執行,來影響執行的結果.
用過,laravel框架作過項目的都知道,每當post提交的時候,都會報一個Token的錯誤,解決辦法是加個
{!!csrf_field()!!}便可,可是根本緣由在哪裏呢?
在app\http\middleware\VerifyCsrfToken.php
的問題,把這個中間件發在全局上,每當去post的提交的時候就會驗證;session
如何去生成一箇中間件呢?
php artisan make:middleware EmailMiddleware
執行會在,middleware 文件夾下找到
=================================分割線================================
查看artisan命令
php artisan
php artisan list
查看某個幫助命令
php artisan help make:model
查看laravel版本
php artisan --version
使用 PHP 內置的開發服務器啓動應用
php artisan serve
生成一個隨機的 key,並自動更新到 app/config/app.php 的 key 鍵值對(剛安裝好須要作這一步)
php artisan key:generate
開啓Auth用戶功能(開啓後須要執行遷移才生效)
php artisan make:auth
開啓維護模式和關閉維護模式(顯示503)
php artisan down
php artisan up
進入tinker工具
php artisan tinker
列出全部的路由
php artisan route:list
生成路由緩存以及移除緩存路由文件
php artisan route:cache
建立控制器
php artisan make:controller StudentController
建立Rest風格資源控制器(帶有index、create、store、edit、update、destroy、show方法)
php artisan make:controllerPhotoController--resource
建立模型
php artisan make:model Student
建立新建表的遷移和修改表的遷移
php artisan make:migration create_users_table--create=students//建立students表
php artisan make:migration add_votes_to_users_table--table=students//給students表增長votes字段
執行遷移
php artisan migrate
建立模型的時候同時生成新建表的遷移
php artisan make:modelStudent-m
回滾上一次的遷移
php artisan migrate:rollback
回滾全部遷移
php artisan migrate:reset
建立填充
php artisan make:seeder StudentTableSeeder
執行單個填充
php artisan db:seed--class=StudentTableSeeder
執行全部填充
php artisan db:seed
建立中間件(app/Http/Middleware 下)
php artisan make:middlewareActivity
建立隊列(數據庫)的表遷移(須要執行遷移才生效)
php artisan queue:table
建立隊列類(app/jobs下):
php artisan make:jobSendEmail
建立請求類(app/Http/Requests下)
php artisan make:request CreateArticleRequest
=================================分割線================================
一、控制器 or Model
// 5.2版本建立一個空控制器
php artisan make:controller BlogController
// 建立Rest風格資源控制器
php artisan make:controller PhotoController --resource
// 指定建立位置 在app目錄下建立TestController
php artisan make:controller App\TestController
// 指定路徑建立
php artisan make:Model App\\Models\\User(linux or macOs 加上轉義符)
// 數據遷移
php artisan migrate
二、數據遷移(Migration)
// 建立遷移
php artisan make:migration create_users_table
// 指定路徑
php artisan make:migration --path=app\providers create_users_table
// 一次性建立
// 下述命令會作兩件事情:
// 在 app 目錄下建立模型類 App\Post
// 建立用於建立 posts 表的遷移,該遷移文件位於 database/migrations 目錄下。
php artisan make:model --migration Post
三、數據填充(Seeder)
// 建立要填充的數據類
php artisan make:seeder UsersTableSeeder
// 數據填充(所有表)
php artisan db:seed
// 指定要填充的表
php artisan db:seed --class=UsersTableSeeder
四、路由
// 查看全部路由
php artisan route:list
五、tinker命令插入單條數據
E:\opensource\blog>php artisan tinker
Psy Shell v0.7.2 (PHP 5.6.19 鈥?cli) by Justin Hileman
>>> $user = new App\User;
=> App\User {#628}
>>> $user->name = 'admin'
=> "admin"
>>> $user->email = 'fation@126.com'
=> "fation@126.com"
>>> $user->password = bcrypt('123456');
=> "$2y$10$kyCuwqSpzGTTZgAPMgCDgung9miGRygyCAIKHJhylYyW9osKKc3lu"
>>> $user->save();
"insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) v
alues (?, ?, ?, ?, ?)"
=> true
>>> exit
Exit: Goodbye.
六、Request請求,主要用於表單驗證
php artisan make:request TagCreateRequest
建立的類存放在 app/Http/Requests 目錄下
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class TagCreateRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'tag' => 'required|unique:tags,tag',
'title' => 'required',
'subtitle' => 'required',
'layout' => 'required',
];
}
}
使用時只需在對應的Controller方法裏引入
// 注意這裏使用的是TagCreateRequest
public function store(TagCreateRequest $request)
{
$tag = new Tag();
foreach (array_keys($this->fields) as $field) {
$tag->$field = $request->get($field);
}
$tag->save();
return redirect('/admin/tag')
->withSuccess("The tag '$tag->tag' was created.");
}
七、 建立artisan命令行(laravel5.*版本)
// 如下命令生成文件 app/Console/Commands/TopicMakeExcerptCommand.php
php artisan make:console TopicMakeExcerptCommand --command=topics:excerpt
//在 app/Console/Kernel.php 文件裏面, 添加如下
protected $commands = [
\App\Console\Commands\TopicMakeExcerptCommand::class,
];
//激活artisan命令行。
//在生成的TopicMakeExcerptCommand.php 文件, 修改如下區域
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class TopicMakeExcerptCommand extends Command
{
/**
* 1. 這裏是命令行調用的名字, 如這裏的: `topics:excerpt`,
* 命令行調用的時候就是 `php artisan topics:excerpt`
*
* @var string
*/
protected $signature = 'topics:excerpt';
/**
* 2. 這裏填寫命令行的描述, 當執行 `php artisan` 時
* 能夠看得見.
*
* @var string
*/
protected $description = '這裏修改成命令行的描述';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* 3. 這裏是放要執行的代碼, 如在我這個例子裏面,
* 生成摘要, 並保持.
*
* @return mixed
*/
public function handle()
{
$topics = Topic::all();
$transfer_count = 0;
foreach ($topics as $topic) {
if (empty($topic->excerpt))
{
$topic->excerpt = Topic::makeExcerpt($topic->body);
$topic->save();
$transfer_count++;
}
}
$this->info("Transfer old data count: " . $transfer_count);
$this->info("It's Done, have a good day.");
}
}
// 命令行調用
php artisan topics:excerpt
========================分割線====================================
artisan 命令列表一
artisan 命令列表二
artisan 命令使用不知道的,可使用以下命令查看幫助信息
[plain] view plain copy
好比查看 make:controller 如何使用
[plain] view plain copy