在开发mvc项目时,models都是第一步。

下面就从建模开始。

1.实体关系图,

由于不知道php有什么好的建模工具,这里我用的vs ado.net实体模型数据建模

下面开始laravel编码,编码之前首先得配置数据库连接,在app/config/database.php文件

"mysql" => array(
  "driver" => "mysql",
  "read" => array(
   "host" => "127.0.0.1:3306",
  ),
  "write" => array(
   "host" => "127.0.0.1:3306"
  ),
  "database" => "test",
  "username" => "root",
  "password" => "root",
  "charset" => "utf8",
  "collation" => "utf8_unicode_ci",
  "prefix" => "",
 ),

配置好之后,需要用到artisan工具,这是一个php命令工具在laravel目录中

首先需要要通过artisan建立一个迁移 migrate ,这点和asp.net mvc几乎是一模一样

在laravel目录中 shfit+右键打开命令窗口 输入artisan migrate:make create_XXXX会在app/database/migrations文件下生成一个带时间戳前缀的迁移文件

代码:

<?php
 
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
 
class CreateTablenameTable extends Migration {
 
 /**
  * Run the migrations.
  *
  * @return void
  */
 public function up()
 {
  
 }
 
 /**
  * Reverse the migrations.
  *
  * @return void
  */
 public function down()
 {
 
 }
 
}

看到这里有entityframework 迁移经验的基本上发现这是出奇的相似啊。

接下来就是创建我们的实体结构,laravel 的结构生成器可以参考http://v4.golaravel.com/docs/4.1/schema

<?php

use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateTablenameTable extends Migration {

 /**
  * Run the migrations.
  *
  * @return void
  */
 public function up()
 {
  Schema::create("posts", function(Blueprint $table) {
   $table->increments("id");
   $table->unsignedInteger("user_id");
   $table->string("title");
   $table->string("read_more");
   $table->text("content");
   $table->unsignedInteger("comment_count");
   $table->timestamps();
  });

  Schema::create("comments", function(Blueprint $table) {
   $table->increments("id");
   $table->unsignedInteger("post_id");
   $table->string("commenter");
   $table->string("email");
   $table->text("comment");
   $table->boolean("approved");
   $table->timestamps();
  });

   Schema::table("users", function (Blueprint $table) {
   $table->create();
   $table->increments("id");
   $table->string("username");
   $table->string("password");
   $table->string("email");
   $table->string("remember_token", 100)->nullable();
   $table->timestamps();
  });
 }

 /**
  * Reverse the migrations.
  *
  * @return void
  */
 public function down()
 {
  Schema::drop("posts");

  Schema::drop("comments");

  Schema::drop("users");
 }

}

继续在上面的命令窗口输入php artisan migrate 将执行迁移

更多迁移相关知识:http://v4.golaravel.com/docs/4.1/migrations

先写到这里明天继续