首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么self不处理雄辩的查询(laravel 5.3)?

在laravel 5.3中,self关键字用于访问当前类的静态属性或方法。它指的是当前类本身,而不是指向类的实例。在查询构建器中,self关键字不能处理雄辩的查询,是因为雄辩的查询需要在查询构建器实例上调用方法,而不是在类本身上调用。

雄辩的查询是指在查询构建器上链式调用多个方法来构建复杂的查询语句。例如,使用雄辩的查询可以这样构建一个查询:

代码语言:php
复制
$users = DB::table('users')
            ->where('name', 'John')
            ->orWhere(function ($query) {
                $query->where('votes', '>', 100)
                      ->where('title', '<>', 'Admin');
            })
            ->get();

在上面的例子中,我们使用了DB::table('users')来获取一个查询构建器实例,然后在该实例上链式调用了whereorWherewhere等方法来构建查询条件。

而使用self关键字时,我们是在类本身上调用方法,而不是在查询构建器实例上调用方法。因此,self关键字不能处理雄辩的查询。

如果你想使用雄辩的查询,你可以使用DB::table('users')来获取查询构建器实例,然后在该实例上进行链式调用。例如:

代码语言:php
复制
$query = DB::table('users');
$query->where('name', 'John');
$query->orWhere(function ($query) {
    $query->where('votes', '>', 100)
          ->where('title', '<>', 'Admin');
});
$users = $query->get();

在上面的例子中,我们首先获取了一个查询构建器实例$query,然后在该实例上分别调用了whereorWherewhere等方法来构建查询条件,最后使用get方法执行查询并获取结果。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从根上理解SQLlike查询%在前为什么走索引?

我再次阐述一下,用索引和走索引不是一个意思! 其实每天都有人私信我,如果遇到一些好问题,我会拿来单独写文章。比如,昨天就有人问我,like 查询 % 在前为什么走索引?...不能人云亦云,我们应该从根上理解它,为什么要这样设计?为什么走索引? 其实结果对我来说,并不重要,重要是过程。设计过程或者实现过程,这才是我最关心。...所以,今天我就从根上给你说一说为什么 like 查询 % 在前为什么走索引? 例如,看这个例子: ? 说到这个例子,估计很多人会提到最左匹配原则。那么为什么要搞一个最左匹配原则呢?...为什么搞一个最右匹配原则? 这个问题,其实是和 B+Tree 有些关系,索引树从左到右都是有顺序。对于索引中关键字进行对比时候,一定是从左往右以此对比,且不可跳过。 为什么是最左匹配原则?...后面,我再给你们讲讲,为什么说索引离散型越高越好!

5.1K20
  • laravel model模型处理之修改查询或修改字段时类型格式案例

    通过上图了解 这将在原有的列上添加一列is_admin,这需要通过属性访问时才会获得,如果我们希望在获得数据时候被一起返回,则还需要append属性 class User extends Model...{ //设置方法名称 protected $appends = ['is_admin','type']; //查询时 修改 字段格式或者值 【自动触发,无需调用】 public function...'; } //修改时 更改储存格式或者值 【自动触发,无需调用】 public function setIsAdminAttribute($value) { //$value 代表字段值...public function getTypeAttribute() { return $this- type[$this- attributes['type']]; } } 以上这篇laravel...model模型处理之修改查询或修改字段时类型格式案例就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.8K41

    面试官:为什么mysql建议执行超过3表以上多表关联查询

    点关注,迷路;持续更新Java架构相关技术及资讯热文!!!...tag_id=1234; Select * from post where id in(123,456,567,9989,8909); 为什么会这样做呢?...原本一条查询,这里却变成了多条查询,返回结果又是一模一样。 事实上,用分解关联查询方式重构查询具有如下优势: 让缓存效率更高。 许多应用程序可以方便地缓存单表查询对应结果对象。...另外对于MySQL查询缓存来说,如果关联中某个表发生了变化,那么就无法使用查询缓存了,而拆分后,如果某个表很少改变,那么基于该表查询就可以重复利用查询缓存结果了。...将查询分解后,执行单个查询可以减少锁竞争。 在应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展。 查询本身效率也可能会有所提升 可以减少冗余记录查询

    8.1K00

    【python之文件读写】

    因此,操作I/O能力是由操作系统提供,每一种编程语言都会把操作系统提供低级C接口封装起来供开发者使用,Python也例外。 二、文件读写实现原理与操作步骤 1....,不知道它有什么用 a+与r+不同是,a+只能写到文件末尾(无论当前文件指针在哪里) 思考2: 为什么要定义这些模式呢?...enter__() -> self. """ return self def __exit__(self, *excinfo): # real signature unknown; restored...Python解释器执行Python代码过程与IDE开发工具是没有什么关联性。 那么这里为什么又要谈起字符编码问题呢?...Python3中open函数encoding参数显然是可以指定,这时候就会用一个“默认字符编码”。

    45710

    浅谈laravel数据库查询返回数据形式

    版本:laravel5.4+ 问题描述:laravel数据库查询返回数据不是单纯数组形式,而是数组与类似stdClass Object这种对象结合体,即使在查询构造器中调用了toArray(),也无法转换成单纯数组形式...(以上图片来源于laravel学院5.3版本到5.4版本升级手册) 如上图所示:Laravel不再支持在配置文件中定制PDO“fetch mode”,取而代之,总是使用PDO::FETCH_OBJ,...$event- statement- setFetchMode(\PDO::FETCH_ASSOC); //这里我们使用PDO::FETCH_ASSOC }); 这样我们就大功告成啦,现在你laravel...数据库查询返回数据就是单纯数组形式。...数据库查询返回数据形式就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.2K31

    laravel-nestedset:多级无限分类正确姿势

    一致性检查和修复 作用域 Nested Sets Model简介 Nested Set Model 是一种实现有序树高明方法,它快速且不需要递归查询,例如不管树有多少层,你可以仅使用一条查询来获取某个节点下所有的后代...,缺点是它插入、移动、删除需要执行复杂sql语句,但是这些都在这个插件内处理了!...嵌套集合模型 安装要求 PHP>=5.4 laravel>=4.1 v4.3版本以后支持Laravel-5.5 v4版本支持Laravel-5.2、5.3、5.4 v3版本支持Laravel-5.1 v2...版本支持Laravel-4 强烈建议使用支持事物功能数据引擎(像MySqlinnoDb)来防止可能数据损坏。...显然你想基于menu_id属性来单独处理每个树,为了实现这样功能,我们需要指定这个menu_id属性为scope属性。

    3.5K20

    Composer de涉水初探

    一、 Composer 安装 1).PHP 环境变量配置,可参考百度经验; 2).详情可参考中国全量镜像进行 Composer 安装 3).安装完成后,命令行执行 composer -V 和 composer...articles/troubleshooting.md#degraded-mode for more info 解决方案: 1.可能是 composer 版本更新阻碍,可尝试执行: composer self-update...项目 安装完整 laravel 项目使用命令是: composer create-project 作者名/项目名; composer create-project laravel/laravel...larPro--prefer-dist 创建指定版本 Laravel 项目 composer create-project --prefer-dist laravel/laravel blog "5.3....*" 提示: - 要创建不同版本 laravel 框架,首先要满足 PHP 版本需求 - –prefer-dist 命令是指明创建项目,而非 clone 3).引入第三方扩展包

    1K20

    牛哇,PHP这个开发框架真的好香!

    Laravel框架相当于JavaSpring,生态or文档 是很完善。 之前写Javamybatis各种sql和字段处理,试过php开发之后,确实很快啊。..."; }); 浏览器访问:http://127.0.0.1:8000/home/index 4.一些错误处理 lavarel框架要对应php版本,否则就有一系列错误~ composer无法安装依赖包...这个语法是并且 (and) 关系语法这个语法是或者 (or) 关系语法 采取model进行sql增删改查(常用) 9.4 查询 laravel中对数据库开发模型非常重要。...更高级用法,更多内容建议看官方文档:https://learnku.com/docs/laravel/7.x/eloquent/7499 总结 laravel框架采取链式查询sql。...更多sql链式编写查询官方文档,应该是很快可以上手。 之后还有比laravel更高级用法lumen框架,就类似Javamybatis-plus与mybatis。

    24820

    Laravel框架关键技术解析

    ,在实例化对象时,static会根据运行时调用类来决定实例化对象,而self是根据所在位置类来决定实例化对象 4.Laravel示例:Illuminate\Database\Eloquent\Model.php...: PHP5.3起,三元运算符可以省略中间,如$value=exp1?...,当然,也可以修改覆盖 3.外观注册分为两个步骤:一是完成外观自动加载类实例化并将外观别名数组添加到该实例中,这里需要与composer自动加载类进行区别;二是完成外观自动加载类中自动加载函数添加...//创建,第一次要composer down-autoload一下 php artisan db:seed [—class=类名] B.查询构造器 1.Laravel框架查询构造器是在PDO扩展基础上设计一个...(\Illuminate\Database\Query\Builder)实例封装了数据库连接实例、请求语法实例和结果处理实例,这里类实例提供了统一接口方法供查询构造器实例使用 5.查询构造器使用阶段

    11.9K20

    Laravel源码笔记(二)路由

    Laravel自然也例外,通过配置文件中一两行代码就可以实现一个具有完整参数、属性及约束路由,甚至可以免去写专门controller。如此强大功能是如何实现呢?...此外,RouteCollection还会更新自身命名查询和动作查询数组,方便程序在需要时通过多种方式灵活查询路由。...: '') )->compile(); } }        需要注意是,在调用symfony路由编译之前laravel自身RouteCompiler先进行了一些特殊正则处理.../tai l$#s 3.3 参数绑定         得到一个路由正则表达式regex之后,laravel就可以后续处理请求时候使用它了:一是用来匹配url,二是用来获取url参数。...概括一下本次收获:路由系统核心,其实就是url这个特殊字符串处理,而其中关键问题是如何同时处理字符串匹配和参数提取。

    7.4K40

    为什么 Laravel 这么优秀?

    为什么 Laravel 这么优秀 Laravel 一直是我心中最优雅后端框架,为了向更多的人解释为什么 Laravel 这么优雅?框架本身都做了什么操作?比起其他框架优势在哪里等?...,我们就可以非常方便通过 Laravel Eloquent 查询它们之间数据关系。...Laravel 会自动帮我们处理复杂 Join 操作,还能在一定条件下帮我们处理如 N+1 问题。...我其实很不明白作为一名工程师为什么我们会瞧上某一门语言?...不过我觉得 Laravel 不足不在性能,毕竟 PHP 作为脚本语言,就算我们把它优化到极致,也不可能达到类似 Go 那么高吞吐率,如果真的是为了性能,那为什么选择其他更适合语言呢?

    21310

    Laravel框架实现上传图片到七牛功能详解

    分享给大家供大家参考,具体如下: 新建项目 这里直接用一个新Laravel5.3项目进行演示,其他版本都是一样不会影响功能,顶多是路由位置不一样而已。已有项目的小伙伴可直接跳过次段。...'', //Bucket名字 'notify_url'= '', //持久化处理回调地址 ], OK,扩展包安装就暂时介绍到这里,接下来我们要去七牛注册一个账号并且将上面的配置完善。...下面给大家看一下七牛秘钥位置: 点击秘钥管理,就可与看到个人七牛秘钥了: 七牛在Laravel配置 上面已经介绍相关配置在哪儿,现在我们要将这些配置在Laravel中使用: 上传图片到七牛...inputname $file = $request- file('file'); // Laravel5.3中多了一个写法 // $file = $request...这里只是演示一个最简单实例,路由定义、视图样式、及逻辑层处理大家按照自己项目来就行了 更多关于Laravel相关内容感兴趣读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结

    2K41

    Laravel路由研究之domain解决多域名问题方法示例

    材料准备 一份干净laravel 两份Nginx配置文件,主要配置如下: server_name *.amor_laravel_test_1.amor; root /var/www/amor_laravel_test...,可能使用场景:在单独路由中需要根据不同域名处理不同需求 dd($account, $webname, $suffix, $id); }); }); 注意: 若account固定...server_name *.amor_laravel_test_1.amor; 如何让Laravel匹配不同域名?...// } 添加路由文件 Route::get('/user', function ($account) { dd($account); }); 注意: 必须全部设置domain,如果只设置了self...namespace或者区分控制器都会导致 route 辅助函数生成绝对路径是最后一个路由domain,因此如果我们逻辑一致,只是想通过简单修改,通过不同域名区别不同站点,我们需要做判断,按需加载

    2.5K30

    修改Laravel自带认证系统User类命名空间步骤

    刚创建了一个新Laravel 5.3项目,想要使用Laravel自带认证功能。...但是我们都知道,Laravel默认情况下Model都是放在app目录下,也就是说其命名空间是App.但是有时候我们希望app目录能够更加整洁一点,所以想要把各个Model都统一放在Model目录下。...由于Laravelapp目录遵循了psr-4标准,也就是说会是用composer按照psr-4标准对各个类进行自动加载。...我们刚才已经重新加载了User类,为什么还会出现找不到问题?...仔细想想我们就会发现,由于登录、注册用到代码都是Laravel框架自带,默认情况下,它们会认为User类还在App命名空间下,所以登录时候,会出现错误。 如何解决呢?

    1.2K31

    laravel初次学习总结及一些细节

    最近学习了laravel,先简单谈谈学习感受吧 刚开始一周多一点时间先把laravel开发文档看了一遍,,感觉刚开始接触时感觉laravel目录与thinkphp又不一样,它们渲染模板方式也不一样...在laravel文档中,学到了门面(接口)和契约(接口),还知道了中间件,csrf保护和blade视图模板及laravel验证(过滤进入应用 HTTP 请求提供了一套便利机制) 在学习完laravel5.3...之后,自己写了个个人博客,写时候用到技术也不多,主要原因是:1.练练手,2.服务器一直空闲着 在写时候遇到了一些坑: 1、laravelphp与前台交互: 注意:这些都没有定义路由名称,如果使用...this.value == '') {this.value = 'Search Blog By name';}"> 这个后台处理过后就得通过改变向前台渲染参数来响应前台...如果使用laravel5.3模型自动维护时间,,数据库时间存储为时间戳timestamp或datetime类型,,如果存成int类型,则会出错 4.在blade模板中如果遇到解析不正确的话可以使用

    4.6K20
    领券