Laravel5學生成績管理系統-01-安裝-建表-填充數據

注:如下筆記都是按照此博文進行開發學習,開發環境爲Mac 。php

1、從github上克隆項目到本地laravel

 
 git clone https://github.com/RryLee/StuGradeWithLaravel5.git

2、切換到本地項目目錄下,安裝composergit

MacdeMacBook-Pro-3:~ mac$ cd Desktop
MacdeMacBook-Pro-3:StuGradeWithLaravel5 mac$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading 1.0.1...

Composer successfully installed to: /Users/mac/Desktop/StuGradeWithLaravel5/composer.phar
Use it: php composer.phar

   

  // 能夠將上邊的命令放入到 bin目錄下,方便後邊不用每次都輸入上次的命令github

MacdeMacBook-Pro-3:StuGradeWithLaravel5 mac$ sudo mv composer.phar /usr/bin/composer
MacdeMacBook-Pro-3:StuGradeWithLaravel5 mac$

 

  // 更新composer數據庫

MacdeMacBook-Pro-3:StuGradeWithLaravel5 mac$ composer update

 

更新出現這樣的問題,-_-!!!composer

MacdeMacBook-Pro-3:StuGradeWithLaravel5 mac$ composer updatecurl

Loading composer repositories with package information學習

Updating dependencies (including require-dev)ui

Your requirements could not be resolved to an installable set of packages.this

  Problem 1

    - laravel/framework v5.0.9 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.

看起來是php沒有安裝mcrypt擴展,如何安裝mcrypt具體能夠參考個人另外一篇博文:

Mac下安裝PHP的mcrypt擴展的方法

 

3、建立表和建立數據

桌面進入:

MacdeMacBook-Pro-3:~ mac$ cd Desktop/StuGrade

MacdeMacBook-Pro-3:StuGrade mac$

MacdeMacBook-Pro-3:StuGrade mac$ php artisan serve

Laravel development server started on http://localhost:8000/

 

利用Migration建立一個用戶詳細表

  生成一個表,注意表名通常爲複數    --create=users_info 爲後邊的標示

MacdeMacBook-Pro-3:laravel mac$ php artisan make:migration create_users_info_table  --create=users_info
Created Migration: 2016_04_23_131412_create_users_info_table
MacdeMacBook-Pro-3:laravel mac$

 

   而後在database/migrations生成的遷移文件中,添加相關的字段:

2016_04_23_131412_create_users_info_table.php
<?php

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

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
           $table->integer('id')->unique()->unsigned(); // 學號惟一,取正數
            $table->string('name');
            $table->string('password');
            $table->string('phone')->default('');
            $table->string('sex')->default('');
            $table->string('email')->default('');
            $table->string('pro_class')->default('');
            $table->boolean('is_admin')->default(0);
            $table->rememberToken();
            $table->timestamps();
        });
    }

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

 

最後,執行 php artisan migrate命令,在數據庫中生成表users_info

MacdeMacBook-Pro-3:laravel mac$ php artisan migrate
Migrated: 2016_04_23_132854_create_users_info_table

 

  應用artisan命令給users_info表填充數據

  用命令生成填充表UserInfoTableSeeder

 

MacdeMacBook-Pro-3:~ mac$ cd Desktop/laravel
MacdeMacBook-Pro-3:laravel mac$ php artisan make:seeder UsersInfoTableSeeder
Seeder created successfully.
MacdeMacBook-Pro-3:laravel mac$

 

 

以下所示,咱們將修改 Laravel 預先生成好的 UserInfoTableSeeder 類來給 run 方法添加一段可在數據庫添加數據的語法:

<?php

use Illuminate\Database\Seeder;
use App\UsersInfo;
use App\Grade;

class UsersInfoTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('users_info')->delete();

        UsersInfo::create([
            'id' => 2010300001,
            'name' => '周潤發',
            'password' => Hash::make('2010300001'),
        ]);
        UsersInfo::create([
            'id' => 2010300002,
            'name' => '周星馳',
            'password' => Hash::make('2010300002'),
        ]);
        UsersInfo::create([
            'id' => 2010300003,
            'name' => '成龍',
            'password' => Hash::make('2010300003'),
        ]);
        UsersInfo::create([
            'id' => 2010300004,
            'name' => '張曼玉',
            'password' => Hash::make('2010300004'),
        ]);
        UsersInfo::create([
            'id' => 2010300005,
            'name' => '林青霞',
            'password' => Hash::make('2010300005'),
        ]);


    }
}

 

 

在 DatabaseSeeder 類中,你可使用 call 方法來運行其它的 seed 類。爲避免發生單個 seeder 類變得太大的狀況,可以使用 call方法來將數據填充拆分紅多個文件。只需簡單傳遞你想要運行的 seeder 類名稱便可:

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();

        // 執行插入用戶詳細數據
         $this->call(UsersInfoTableSeeder::class);

        Model::reguard();
    }
}

 

   運行數據填充:

MacdeMacBook-Pro-3:laravel mac$ composer dump-autoload
Generating autoload files
MacdeMacBook-Pro-3:laravel mac$ php artisan db:seed
Seeded: UsersInfoTableSeeder

 

  查看users_info表,數據填充OK:

數據填充,Laravel中文官方文檔http://laravel-china.org/docs/5.1/seeding

 

PHP artisan 命令整合:

建立控制器:

php artisan make:controller Admin/AdminController

 

建立中間件

     
php artisan make:middleware isAdmin
相關文章
相關標籤/搜索