Laravel5学生成绩管理系统-01-安装-建表-填充数据
博客专区 > Corwien 的博客 > 博客详情
Laravel5学生成绩管理系统-01-安装-建表-填充数据
Corwien 发表于1年前
Laravel5学生成绩管理系统-01-安装-建表-填充数据
  • 发表于 1年前
  • 阅读 186
  • 收藏 5
  • 点赞 1
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 安装Laravel,用artisan命令创建表及填充数据

注:以下笔记都是按照此博文进行开发学习,开发环境为Mac 。

一、从github上克隆项目到本地

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

二、切换到本地项目目录下,安装composer

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目录下,方便后边不用每次都输入上次的命令

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

 

更新出现这样的问题,-_-!!!

MacdeMacBook-Pro-3:StuGradeWithLaravel5 mac$ composer update

Loading composer repositories with package information

Updating dependencies (including require-dev)

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

  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扩展的方法

 

三、创建表和创建数据

桌面进入:

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

 

标签: Laravel
共有 人打赏支持
粉丝 23
博文 144
码字总数 115164
×
Corwien
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: