以前用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. SET QUOTED_IDENTIFIER ON和SET ANSI_NULLS ON

    distinct是sqlserver的标识符,如果想以distinct为表时,在QUOTED_IDENTIFIER为off的情况下,是不能创建表名为distinct的表的,因为在QUOTED_IDEN ...

  2. java中分页效果的实现代码

    首先是将分页所需的一些个资源 ,抽象出一个javabean对象-PageBean: 先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector, 然后利用其sublist(int ...

  3. C# 日期格式转【转】

    使用:DateTime.ToString的方法(String, IFormatProvider)转换格式 using System; using System.Globalization; Strin ...

  4. CSS定位的三种机制:普通流、绝对定位和浮动

    1.普通流: position : static – 元素框正常生成.即上述不对元素进行任何样式设置的默认形态. position : relative (此时设置top, right, bottom ...

  5. Hyper-V 2012 R2 故障转移群集之建立域控(AD DS)与加入域

    Windows  2012 R2建立域控(AD DS)与加入域 Active Directory概述:          使用 Active Directory(R) 域服务 (AD DS) 服务器角 ...

  6. Python开发【第十章】:I/O多路复用、异步I/O(综合篇)

    近期心得:国庆节放假再加上近期工作太忙,已经有半个月没更新博客了,程序更别说了,也没怎么去写,自己给自己着实放了个大假.谈谈感受的话,没有python的日子,每天看书.看电影.各种玩,还有爸妈伺候着, ...

  7. spring的多个PropertyPlaceholderConfigurer实例装配的问题

    1. 默认情况下,使用PropertyPlaceholderConfigurer多实例装配出现异常 在项目中尝试 在不同的spring的配置文件中分别引入相应的properties文件,这样会在spr ...

  8. String转json

    一.下载json 具体到http://www.json.org/上找Java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了 转载地址:http://blog.csdn.net/tax ...

  9. 3.Java Script 类型

     true: null==undefinedfalse: null===undefined   

  10. csuoj 1392: Number Trick

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1392 1392: Number Trick Time Limit: 1 Sec  Memory L ...