laravel通过Eloquent ORM实现CURD】的更多相关文章

//Eloquent ORM public function orm1() { //all(); 返回所有数据: /*$students=Student::all(); dd($students);*/ //find() 返回一条数据: /* $student=Student::find(1001); dd($student);*/ //findeOrFail(); 根据主键查找,查不到返回错误: /*$student=Student::findOrFail(1006); dd($student…
一.ORM编程思想 1.1 Active Record 设计模式 Active Record 是一种数据访问设计模式,它可以帮助你实现数据对象Object到关系数据库的映射.应用Active Record时,每一个类的实例对象唯一对应一个数据库表的一行(一对一关系).你只需继承一个abstract Active Record 类就可以使用该设计模式访问数据库,其最大的好处是使用非常简单 1.2 调试工具 Laravel Debugbar Installation: composer requir…
1.定义模型 <?php namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model{ protected $table = 'my_flights'; protected $primaryKey = 'my_id'; public $timestamps = false; } 2.获取表中所有数据all/get $flights = Flight::all();$flights = App\…
一.查询构建器的get方法 查询构建器的get方法返回了一个集合 $users = App\User::where('active', 1)->get(); foreach ($users as $user) { echo $user->name; } 二.访问器&调整器 1.访问器:为数据库的某列在用属性读取的时候做处理 class User extends Model{ /** * 获取用户的名字 * * @param string $value * @return string…
一.一对一 1.主对从(hasOne) 从User模型中取出用户的手机 User模型中: /** * 获取关联到用户的手机 */ public function phone() { return $this->hasOne('App\Phone'); // return $this->hasOne(Phone::class); } phone默认有个user_id外键关联user模型的id,所以上面的应该是 return $this->hasOne('App\Phone', 'id',…
Laravel 的 Eloquent ORM 提供了更优雅的ActiveRecord 实现来和数据库的互动. 每个数据库表对应一个模型文件. 数据库配置 .env文件(也可以直接修改config/database.php) DB_HOST=localhost DB_DATABASE=myblog DB_USERNAME=root DB_PASSWORD=root 数据库表: CREATE TABLE `blog` ( `id` int(10) unsigned NOT NULL AUTO_INC…
Eloquent ORM 简介 基本用法 集体赋值 插入.更新.删除 软删除 时间戳 查询范围 关系 查询关系 预先加载 插入相关模型 触发父模型时间戳 与数据透视表工作 集合 访问器和调整器 日期调整器 模型事件 模型观察者 转为数组或JSON 简介 Laravel 自带的 Eloquent ORM 为您的数据库提供了一个优雅的.简单的 ActiveRecord 实现.每一个数据库的表有一个对应的 "Model" 用来与这张表交互. 在开始之前,确认已在 app/config/dat…
Laravel 4之Eloquent ORM http://dingjiannan.com/2013/laravel-eloquent/ 定义Eloquent模型 模型通常放在app/models目录中,但是您可以自由地把它们放在任何地方,只要它能根据您的composer.json文件自动加载.除非显示地指定表名,Eloquent默认情况下将模型类名的小写,复数形式作为表名.如我们定义的模型为Game,那么它将操作games数据表. <?php // app/models/Game.php cl…
laravel 操作数据库一般都使用它的Eloquent ORM才操作 建立模型 <?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { //指定表名 默认 模型名的复数 protected $table='student'; //指定主键 默认主键 为ID protected $primaryKey='id'; //指定允许批量赋值的字段 protected $fill…
连接数据库 一.Outline 三种操作数据库的方式. 二.Facade(外观)模式 Ref: 解读Laravel,看PHP如何实现Facade? Facade本质上是一个“把工作推给别人做的”的类. Facade存在的价值,可以从服务容器谈起.服务容器,可见我的另一篇博文,地址:http://www.cnblogs.com/sweng/p/6430374.html 举个例子,不知道大家以前写代码有没有过obj->method(arg1,arg2)->func(arg3,arg4);的体验.学…
今天发现一个坑,在处理Eloquent ORM的联合查询时,一直报错Class 'AdminGroup' not found ,可是我的项目中明明存在这个类,如下 这是我的模型类: 它们的控制器方法: 运行结果:就是一开始提到的那个错误信息 后来查了好久才找到原因: 这个belongsto()方法的第一个参数指的是它所关联的模型类,需要加上路径 再次运行:成功显示 另外:在执行php artisan db:seed这个命令的时候有时候也会出现Class not found的错误 这个时候需要先执…
一.DB门面 1.insert DB::insert('insert into table(`name`) value(?)', ['test']); 2.update DB::update('update into table set name=? where id=?', ['test', 10]); 3.delete DB::delete('delete from tb where id=?', [1]); 4.select DB:select('select * from tb'); 二…
基本操作 新增 $user = new User; $user->name = 'John'; $user->save(); $insertedId = $user->id;//从对象取得 id 属性值 使用模型的 Create 方法 class User extends Model { protected $guarded = ['id', 'account_id'];//黑名单,不会被更新 } // 在数据库中建立一个新的用户... $user = User::create(['na…
使用laravel的Eloquent模型获取数据库的指定列   使用Laravel的ORM——Eloquent时,时常遇到的一个操作是取模型中的其中一些属性,对应的就是在数据库中取表的特定列. 如果使用DB门面写查询构造器,那只需要链式调用select()方法即可: $users = DB::table('users')->select('name', 'email as user_email')->get(); 使用Eloquent的话,有两种方式: 1. 使用select() $users…
最近在学习Laravel,觉得ORM功能很强大,我这里只是简单探索了一点,如果有更好的笔记,还请分享. 因为重点在于Eloquent ORM,所以路由设置,控制器就不详细描述了,这里直接进入Models么模块. 1.数据库准备(Mysql) 在这里需要创建users和users_ext两张表,并初始化数据: CREATE TABLE IF NOT EXISTS users ( iAutoId ) NOT NULL AUTO_INCREMENT, sNmame ), iStatus ), iCre…
上一篇写到Eloquent ORM的基类Builder类,这次就来看一下这些方便的ORM方法是如何转换成sql语句运行的. 首先还是进入\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php这个类中,先来看一下最常用的where()方法. 如下所示,where方法的代码很长,但前面多个if都是用来兼容各种不同调用式的.我们先抛开这些花哨的调用方式,来看一下最简单的调用方法是怎么运行的. /** * Add a bas…
我们都知道通过Laravel中数据库查询出来的模型对象都是基于数据库字段,今天给大家展示一个 Laravel Eloquent ORM 模型特性-附加值不存在于数据表中. 举个简单的栗子,一篇文章(posts表)对应有很多评论(comments表),我们获取文章的同时需要获取评论数量.通常的做法就是根据 ORM 的关联关系,获取评论数量:$post->comments()->count() . 如果获取的是一个文章列表,那么最直接的办法就是 froeach 查询出来的文章,然后每篇文章获取评论…
小伙伴们好,本文是在我的前一篇随笔的基础上完成的,还没有浏览的同学,请移尊驾哦 Eloquent ORM学习笔记. 前一篇文章用到了leftJoin方法,其实Eloquent对于模块之间的关联查询有自己封装,接下来我们就一起研究Eloquent的关联是如何应用的. 1.创建Models 前一篇文章创建了UserModel,其实对于users_ext也可以创建一个Model:  UserExtModel.php <?php class UserExtModel extends \Eloquent…
控制器方法: //Eloquent ORM的使用: public function orm1() { //all() /*$students=Student::all(); dd($students); */ //find(); /*$student=Student::find(1001); dd($student);*/ //findOrFail() /*$student=Student::findOrFail(1008); dd($student);*/ //查询构造器在ORM中的使用: /…
Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于表达力.本文为大家讲解了Laravel框架中的数据库CURD操作.连贯操作.链式操作的用法,包含大量数据库操作常用方法,感兴趣的同学参考下. Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美…
本篇文章是对单一入口.MVC.ORM.CURD.ActiveRecord概念进行了详细的分析介绍,需要的朋友参考下     MVC MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务. 视图 :视图是用户看到并与之交互的界面.对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括…
导读:在使用Laravel ORM的Model方法find, get, first方法获取数据对象时返回的数据对象的attributes属性数组里会包含数据表中所有的字段对应...原文地址:http://www.bcty365.com/content-153-5939-1.html 在使用Laravel ORM的Model方法find, get, first方法获取数据对象时返回的数据对象的attributes属性数组里会包含数据表中所有的字段对应的键值关系, 那么如何在ORM查询时只返回数据表…
1. 时间戳 默认情况下在使用ORM操作数据库进行添加.修改数据时, created_at 和 updated_at列会自动存在于数据表中,并显示的是 ‘2017’格式,如果想以 Unix时间戳格式存储,在模型种创建方法 getDateFormat 或者可以定义$dateFormat的属性值“U" : <?php namespace App; use Illuminate\Database\Eloquent\Model; class Test extends Model{ protecte…
//模型中的相关代码 namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model{ //默认对应的是模型复数,即students,如果不是,需要自己指定表名 protected $table = 'student';//指定表名 //默认主键是id,如果不是,需要指定 protected $primaryKey = 'id'; //自动维护时间戳 public $timestamps = t…
foreach ($products as $v=>$a) { $count[] = array('product_name' => $a['name'], 'product_weight' => $a['weight'], 'product_id' => $a['pid'], 'product_price' => $a['price'], 'order_id' => $order->id, 'card_phone' => $user->phone);…
模型首先在App目录下建立student的文件夹 里面放上 Student.php 且需要继承基类Model //允许批量赋值的字段// protected $fillable = ['name','age']; //不允许批量赋值的字段// protected $guarded = ['name','age']; //自动维护时间戳 public $timestamps = true; 控制器Route::any('orm1','StudentController@orm1');//ORM查询…
现在有查询语句: SELECT users.sNmame, users.iCreateTime, users_ext.iAge, users_ext.sSex FROM users LEFT JOIN users_ext ON users.iAutoId = users_ext.iUserID WHERE users.iStatus ORDER BY users.iCreateTime LIMIT , 这里是简单的一个查询语句,接下来就以ORM的形式实现: public function get…
<?php namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { //DB facade原始SQL语句 public function test1() { $students = DB::select('select * from student'); //var_dump($students)…
MVC MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务. 视图 :视图是用户看到并与之交互的界面.对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.如何处理应用程序的界面…
Eloquent 中的get实际上是Eloquent/Builder中的get,得到的结果是个Collection对象,再调用Collection的first才得到collection中的一项,即一个Model对象. 而Query/Builder中的get得到的是个数组,实际上是直接执行了PDO的fetchAll的结果,这个结果不能再调用first,但是可以直接在Query/Builder上调用first,将得到一个stdClass对象. laravel的文档还是比较模糊的,很多地方都是简单的介…