Laravel框架学习笔记(二)项目实战之模型(Models)


Posted in PHP onOctober 15, 2014

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

下面就从建模开始。

1.实体关系图,

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

Laravel框架学习笔记(二)项目实战之模型(Models)

下面开始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 Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
 
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 Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

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

先写到这里明天继续

PHP 相关文章推荐
一个php导出oracle库的php代码
Apr 20 PHP
PHP性能优化准备篇图解PEAR安装
Dec 05 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
PHP中抽象类、接口的区别与选择分析
Mar 29 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 #PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 #PHP
php保存二进制原始数据为图片的程序代码
Oct 14 #PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 #PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 #PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 #PHP
PHP+jQuery 注册模块开发详解
Oct 14 #PHP
You might like
基于mysql的论坛(5)
2006/10/09 PHP
MYSQL环境变量设置方法
2007/01/15 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
jquery实现的网页自动播放声音
2014/04/30 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python制作简易注册登录系统
2016/12/15 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
上班迟到检讨书
2014/01/10 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
干部下基层实施方案
2014/03/14 职场文书
简易版租房协议书范本
2014/10/13 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技