注:以下笔记都是按照此博文进行开发学习,开发环境为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$
利用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