您的位置:首页 > 编程语言 > PHP开发

Laravel5学生成绩管理系统-01-安装-建表-填充数据

2016-04-21 00:00 736 查看
摘要: 安装Laravel,用artisan命令创建表及填充数据

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

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

[code=plain]
git clone https://github.com/RryLee/StuGradeWithLaravel5.git[/code] 二、切换到本地项目目录下,安装composer

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

[code=plain]MacdeMacBook-Pro-3:StuGradeWithLaravel5 mac$ sudo mv composer.phar /usr/bin/composer
MacdeMacBook-Pro-3:StuGradeWithLaravel5 mac$


// 更新composer

[code=plain]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 为后边的标示

[code=plain]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生成的迁移文件中,添加相关的字段:

[code=plain]2016_04_23_131412_create_users_info_table.php

[code=plain]<?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

[code=plain]MacdeMacBook-Pro-3:laravel mac$ php artisan migrate
Migrated: 2016_04_23_132854_create_users_info_table


应用artisan命令给users_info表填充数据

用命令生成填充表UserInfoTableSeeder

[code=plain]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 预先生成好的 UserInfoTable
Seeder
类来给
run
方法添加一段可在数据库添加数据的语法:

[code=plain]<?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 类名称即可:

[code=plain]<?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();
}
}


运行数据填充:

[code=plain]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 命令整合:

创建控制器:

[code=plain]php artisan make:controller Admin/AdminController


创建中间件

[code=plain]
php artisan make:middleware isAdmin
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Laravel