Artisan 命令

zhangsen發表於2019-05-30

1. Artisan簡介

  1. Artisan是Laravel中自帶的命令列工具的名稱
  2. 由強大的Symfony consle 元件驅動的
  3. 提供來一些對應用開發有幫助的命令

2. Artisan使用幫助

1. 檢視所有可用的Artisan的命令(list)

php artisan
php artisan list

2. 檢視命令的幫助資訊(help)

php artisan help migrate

3. Artisan基本使用

1. 建立控制器

php artisan make:controller StudentController

2. 建立模型

php artisan make:model Student

指定路徑建立

php artisan make:model Models/Activity

3. 建立中介軟體

php artisan make:middleware Activity

4. Laravel中的使用者認證 (Auth)

  1. 生成Auth所需檔案
  2. 資料遷移
  3. 資料填充
1. 生成Auth所需檔案

在Artisan控制檯輸入以下命令

php artisan make:auth

vagrant@homestead:~/code/Laravel$ php artisan make:auth
Authentication scaffolding generated successfully.

產生影響:

//在routes/web.php檔案中
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

//在resources/views目錄下生成
auth資料夾
layouts資料夾

//在vendor/laravel/framework/src/Illuminate/Routing/Router.php生成對應檔案

資料遷移命令php artisan migrate

vagrant@homestead:~/code/Laravel$ php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table

5. 新建遷移檔案

  1. 新建一個students表的遷移檔案

    php artisan make:migration create_student_table

    —table 和 —create引數可以用來指定資料表名稱,以及遷移檔案是否要建立新的資料表

  2. 生成模型的同時生成遷移檔案

    php artisan make:model Student -m

實踐操作1:

//新建一個遷移檔案
php artisan make:migration create_student_table --create=students
//執行後
vagrant@homestead:~/code/Laravel$ php artisan make:migration create_student_table --create=students
Created Migration: 2019_05_28_221527_create_student_table
//在database/migrations生成檔案2019_05_28_221527_create_student_table.php

檔案具體

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateStudentTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('students', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('students');
    }
}

實踐操作2:

建立model同時建立遷移檔案

vagrant@homestead:~/code/Laravel$ php artisan make:model Models/Article -m
Model created successfully.
Created Migration: 2019_05_28_221915_create_articles_table

修改2019_05_28_221527_create_student_table.php檔案

    public function up()
    {
        Schema::create('students', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->integer('age')->unsigned()->default(0);
            $table->integer('sex')->unsigned()->default(0);
            $table->integer('created_at')->default(0);
            $table->integer('updated_at')->default(0);
        });
    }

然後執行php artisan migrate

vagrant@homestead:~/code/Laravel$ php artisan migrate
Migrating: 2019_05_28_221527_create_student_table
Migrated:  2019_05_28_221527_create_student_table
Migrating: 2019_05_28_221915_create_articles_table
Migrated:  2019_05_28_221915_create_articles_table

表就建立好了

6. 資料填充

  1. 建立一個填充檔案,並完善填充檔案

    php artisan make:seeder StudentTableSeeder

  2. 執行單個填充檔案

    php artisan db:seed --class=StudentTableSeeder

  3. 批量執行填充檔案

    php artisan db:seed

//建立一個填充檔案,並完善填充檔案
vagrant@homestead:~/code/Laravel$ php artisan make:seeder StudentTableSeeder
Seeder created successfully.
//生成檔案database/seeds/StudentTableSeeder.php
<?php
use Illuminate\Database\Seeder;
class StudentTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}
//完善方法
<?php
use Illuminate\Database\Seeder;
class StudentTableSeeder extends Seeder
{
    public function run()
    {
        //
        \Illuminate\Support\Facades\DB::table('students')->insert([
            ['name'=>'care','age'=>12],
            ['name'=>'winnie','age'=>12],
        ]);
    }
}
//執行命令,單個填充檔案
php artisan db:seed --class=StudentTableSeeder
//資料填充成功

//批量填充  
  public function run()
{
  $this->call(StudentTableSeeder::class);
}
//執行命令
php artisan db:seed

相關文章