以前用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. Mvc自定义路由让支持.html的格式

    前言 在大多时候,我们都需要自定义路由,当我们设置为/list/1.html的时候,有的时候会出现以下异常. routes.MapRoute( "category", // 路由名 ...

  2. Push:iOS基于APNS的消息推送

    1. Push的三个步骤,如下图所示: (1)Push服务应用程序把要发送的消息.目的iPhone的标识打包,发给APNS: (2)APNS在自身的已注册Push服务的iPhone列表中,查找有相应标 ...

  3. 使用二级域名访问本地localhost网站

    将C:\Windows\System32\drivers\etc\hosts文件,修改如下.保存该文件时会提示没有权限,解决的方法是用管理员权限打开记事本. # localhost name reso ...

  4. 微博开放平台api使用

    前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文 ...

  5. 机器学习实战(一)kNN

    $k$-近邻算法(kNN)的工作原理:存在一个训练样本集,样本集中的每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对于关系.输入没有标签的新数据后,将新数据的每一个特征与样本集中数据对应的 ...

  6. LeetCode Remove Element

    原题链接在这里:https://leetcode.com/problems/remove-element/ 题目: Given an array and a value, remove all ins ...

  7. php 入门1

    一.php在引入文件和js引入文件的区别 1.php在引入文件是用代码控制,而js是通过标签的属性src引入: 2.php引入可以在引入下写代码,而js是不可以的 3.静态效果的js可以引入的时间,引 ...

  8. nvm诡异的报错

    安装:curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash wget -qO- htt ...

  9. ARC 与非 ARC 之间那些的'祸害'

    你是否也曾被 assign.retain.copy.release.autorelease.strong.__strong.weak.__weak.__unsafe__unretain.__autor ...

  10. iOS XCode启用/关闭Clang Warnings

    前言:warnings是编码中很重要的一个环节,编译器给出合理的warning能帮助开发者找到自己代码的问题,防止很多bug产生.  默认用XCode创建一个工程,会自动开启一些重要的warnings ...