以前用CI框架对于返回值没有过多关注,但是发现使用laravel框架的时候出现了一些小问题,特意实践总结了一些常用情形,希望对大家有所帮助
 
  先理解几个概念:
   1>StdClass 对象=>基础的对象
   2>Eloquent 模型对象(Model 对象)=>和模型相关的类对象
   3>Eloquent 集合=>可以简单理解为对象数组,里面的每一个元素都是一个Model 对象
   注明:对象和实例只是说法不同,就是实例化的类,称谓只是一个代号,大家理解实质即可
 

1.使用DB门面查询构造器

  1>$test = DB::table('dialog_information')->get();
  返回值: 方法会返回一个数组结果,其中每一个结果都是 PHP StdClass 实例
 
  2>$test = DB::table('dialog_information')->first();
  返回值:这个方法会返回单个 StdClass 实例

2.使用orm模型

  1>$list = Dialog::first();
  返回值:Eloquent 模型对象
 
  2>$list = Dialog::find(1);
  返回值:Eloquent 模型对象
 
  3>$list = Dialog::get();
  返回值:Eloquent 集合
 
  4>$list = Dialog::all();
  返回值:Eloquent 集合
 
  5>$input = ['goods_id'=>1,'buyer_id'=>1,'seller_id'=>1];
  $result = Dialog ::create($input);
  dd($result);
  返回值:Eloquent 模型对象
 

3.关于使用orm模型增删改的一些总结

//save 返回真假

  $dialog = new Dialog();

  $dialog->goods_id = 1;

  $dialog->buyer_id = 2;

  $dialog->seller_id = 3;

  $result = $dialog->save();

//create 返回Eloquent 模型对象

  $input = ['goods_id'=>1,'buyer_id'=>1,'seller_id'=>1];

  $result = Dialog ::create($input);

//insert 返回真假

  $data = array(array('goods_id'=>1,'buyer_id'=>1,'seller_id'=>1),array('goods_id'=>2,'buyer_id'=>2,'seller_id'=>2));

  $result = Dialog::insert($data);

//delete 返回真假

  $dialog = Dialog::find(10);

  $result = $dialog->delete();

//destroy 返回删除条数

  $result = Dialog::destroy([11,12]);

//delere和where使用 返回删除条数

  $result = Dialog::where('id', '>', 10)->delete();

//update 返回更新条数

  $result = Dialog::where('id', '>', 10)->update(['seller_id'=>3]);

4.分析Model实例

测试代码:
  $account = Users::find(1)->account;
  $account->newAttr = 'test';
  $account->table = 'testTable';
  var_dump($account->primaryKey);
  dd($account);
输出结果:
 
分析:
  1.首先进入Model文件,发现我们有一些public修饰的模型约定,然后进入模型继承的类,发现里面有protect修饰的字段,这些字段就是我们上面输出的内容
  2.如果我们想取到table对应的值,那么直接$account->primaryKey,就可以得到对应的值 id
  3.注意到,我们$account->qq可以取出对应的值111111,如果User_account下第一层没有取到,那么就回去attributes下面寻找,然后取出qq对应的值
  4.测试代码中
    $account->newAttr = 'test'; //在attributes中产生了一个新键值对
    $account->table = 'testTable'; //发现User_account下第一层中的table被修改了,而没有修改到attributes中.
 
 
以上都是亲测,总结不全,欢迎补充

laravel框架总结(十) -- 返回值的更多相关文章

  1. laravel框架总结(十四) -- 数据迁移和数据填充

    一.数据迁移 1.创建一个迁移 1>使用artisan命令make:migration来创建一个新的迁移: php artisan make:migration create_sutdents_ ...

  2. laravel框架总结(十二) -- 关联关系

    这里我们users表对应的模型类名是users,大家特意注意下和user取名的不同 1.一对一关系 1>表A和表B的记录一一对应,比如一个用户对应一个社交账号 数据表的设计如下:   2> ...

  3. Python小白学习之路(十)—【函数】【函数返回值】【函数参数】

    写在前面: 昨天早睡之后,感觉今天已经恢复了百分之八十的样子 又是活力满满的小伙郭 今日份鸡汤: 我始终相信,在这个世界上,一定有另一个自己,在做着我不敢做的事,在过着我想过的生活.-------宫崎 ...

  4. SSM框架之SpringMVC(4)返回值类型及响应数据类型

    SpringMVC(4)返回值类型及响应数据类型 1. 返回值分类 1.1. 返回字符串 Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址. @RequestM ...

  5. int不可为null引发的 MyBatis做持久层框架,返回值类型要为Integer问题

    MyBatis做持久层框架,返回值类型要为Integer MyBatis 做持久层时,之前没注意,有时候为了偷懒使用了int类型做为返回的类型,这样是不可取的,MyBatis做持久层框架,返回值类型要 ...

  6. 深入理解PHP内核(十二)函数-函数的定义、传参及返回值

    原文链接:http://www.orlion.ga/344/ 一.函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) {    echo $var; ...

  7. Spring框架下的 “接口调用、MVC请求” 调用参数、返回值、耗时信息输出

    主要拦截前端或后天的请求,打印请求方法参数.返回值.耗时.异常的日志.方便开发调试,能很快定位到问题出现在哪个方法中. 前端请求拦截,mvc的拦截器 import java.util.Date; im ...

  8. 终于懂了:TControl.Perform是有返回值的,且看VCL框架如何利用消息的返回值(全部例子都在这里)——它的存在仅仅是为了方便复用消息的返回值

    代码如下: function TControl.Perform(Msg: Cardinal; WParam, LParam: Longint): Longint; var Message: TMess ...

  9. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

随机推荐

  1. sublime text3配置node.js开发环境

    今天配置sublime下node.js网上搜索很多方法. 首先:传统的方法是 1.GIT方法 可直接输入 Git clone https://github.com/tanepiper/SublimeT ...

  2. SpringMVC操作指南-整合Spring、SpringMVC、MyBatis、Log4j/Log4j2及JUnit4搭建项目框架

  3. iOS 9后修改状态栏方法

    1.plist文件中添加View controller-based status bar appearance字段 值为NO 2.程序中添加 [UIApplication sharedApplicat ...

  4. python gevent 协程

    简介 没有切换开销.因为子程序切换不是线程切换,而是由程序自身控制,没有线程切换的开销,因此执行效率高, 不需要锁机制.因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断 ...

  5. 数据迁移工具sqoop

    有问题........数据迁移工具sqoop sqoop安装 [root@sqoop data]# wget  wget http://apache.fayea.com/sqoop/1.4.6/sqo ...

  6. Android四大核心组件之BroadCastReceiver

    实验内容 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销BroadCast 实验要求 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销 ...

  7. windows2008吃尽内存的解决办法

    最近才用上windows2008,之前一直用的是windows2003,发现系统运行一段时间后,内存吃紧,赶紧打开资源查看器,发现当前运行的程序占有内存都很小,后经查资料,原来是被windows200 ...

  8. E-Business Suite 12.2 startCD 50 Install Fails with Fatal Error: TXK Install Service oracle.apps.fnd.txk.config.ProcessStateException: OUI process failed Cannot install Web Tier Utilities

    在rhel7.2上,使用startCD 50安装ebs r12.2的使用,安装到38%的时候就报错,遇到了和以下文章类似的问题: http://www.cnblogs.com/abclife/p/49 ...

  9. 箭头函数 Arrow Functions/////////////////////zzz

    箭头符号在JavaScript诞生时就已经存在,当初第一个JavaScript教程曾建议在HTML注释内包裹行内脚本,这样可以避免不支持JS的浏览器误将JS代码显示为文本.你会写这样的代码: < ...

  10. 0-js判断电脑或手机登录

    <script type="text/javascript"> try{ if(/Android|webOS|iPhone|iPod|BlackBerry/i.test ...