Laravel中如何轻松容易的输出完整的SQL语句_php技巧

来源:脚本之家  责任编辑:小易  

要从模型新增或2113修改一条数据到5261数据库,只要建立一个模型实例并调用4102 save 方法即可1653。新增: $user = new User; $user->name = 'John'; $user->save();修改: $user = User::find(1); $user->name = 'John'; $user->save();www.zgxue.com防采集请勿采集本网。

前言

laravel 中自带的查询构建方法 toSql 得到的 sql 语句并未绑定条件参数,类似于这样 select * fromuserswhereid= ? ,所以写了个扩展包 laravel-dump-sql ,可以获取完整的 sql 语句。

laravel框架中试图中怎样用if标签: @if(条件) @else @endifLaravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表

源码

laravel-dump-sql - github.com/guanguans/l

/ 代表的是系统的根目录,是操作系统绝对路径的根 ./ 代表的是当前路径,是一个相对路径 比如你的代码当前目录在磁盘的/usr/local/project/laravel/ 那么./ 就是当前这个目录"/usr/local/project/laravel/",而/就是"/"这个根目录

安装

不需要特别加载吧。你可以直接看看这个方法是怎么调用的在 #laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php#大概Line-1585/** * Get the current route name. * * @return string|null */public function currentRouteNam

$ composer require guanguans/laravel-dump-sql -v

它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。1、Bundle是Laravel的扩展包组织形式或称呼。Laravel的扩展包仓库已经相当成熟了,可以很容易的帮你把扩展包(bundle)安装

发布服务

1 在 app/config 文件夹中经常配置的一般有两个文件:app.php 和 database.php 两个文件,他们一个是配置项目杂项的、一个是配置数据库的。下面我就里面的常用配置做一下解释: 先是 app.php 文件 2 其实 app.php 后面还有一些内容,但那些基本

$ php artisan vendor:publish --provider="Guanguans\\LaravelDumpSql\\ServiceProvider"

使用

安装成功后查询构建器会新增 toRawSql、dumpSql、ddSql 三个方法

// 获取 SQLUser::where('id', 1)->toRawSql();DB::table('user')->where('id', 1)->toRawSql();// 打印 SQLUser::where('id', 1)->dumpSql();DB::table('user')->where('id', 1)->dumpSql();// 打印 SQL 并退出User::where('id', 1)->ddSql();DB::table('user')->where('id', 1)->ddSql();

自定义方法名称

$ php artisan vendor:publish --tag=laravel-dump-sql

发布配置文件

<?phpreturn [ /* * Get sql statement. */ 'to_raw_sql' => 'toRawSql', /* * Print SQL statements. */ 'dump_sql' => 'dumpSql', /* * Print SQL statements and exit. */ 'dd_sql' => 'ddSql',];

总结

到此这篇关于Laravel中如何轻松容易的输出完整的SQL语句的文章就介绍到这了,更多相关Laravel输出完整的SQL语句内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

->get(array('posts.id', 'posts.support', 'posts.against', 'users.username', 'posts.post_author', 'posts.post_title', 'posts.post_body'));foreach($posts as $p){$data[] = array('id' => $p -> id,'support' => $p -> support,'against' => $p -> against,'username'=> $p -> username,'post_author' => $p -> post_author,'post_title' => $p -> post_title,'post_body' => $p -> post_body);}$res = View::make('home.index')-> with('posts', $data);Cache::forever('staticPageCache_home', $res);}// 返回缓存的数据2113return Cache::get('staticPageCache_home');}}这里我用到了三个api1). Cache::has ,这个5261判断是4102说如果当前不存在 staticPageCache_home 这个名字的缓存, 就立即去取数据2). Cache::forever, 这个从1653用例文档里面可知是"永久缓存"的意思, 因为我一般都是很勤劳的,如果发表了博文,自己再去后台立即刷新一下缓存就好了, 所以不需要设置过期啊失效时间之类的, 当然这个是要按各自的具体需求来的3). Cache::get , 这句是从缓存里面取出 staticPageCache_home 这个名字的缓存, 然后作为响应内容返回嗯, 就这么简单, 呵呵, 一个基本的缓存功能就完成了, laravel的确是不错地!3. 为后台添加刷新缓存功能还是贴代码吧, 不过也很简单:// 刷新首页缓存(暂时只支持首页)public function get_refreshcache() {/*@var $GID admin组id*/$GID = 1;if ( Auth::user() -> gid === 1 ) {$data = array();$posts = Post::with('user')->join('users', 'users.id', '=', 'posts.post_author')-> order_by('posts.created_at', 'desc')->get(array('posts.id', 'posts.support', 'posts.against', 'users.username', 'posts.post_author', 'posts.post_title', 'posts.post_body'));foreach($posts as $p){$data[] = array('id' => $p -> id,'support' => $p -> support,'against' => $p -> against,'username'=> $p -> username,'post_author' => $p -> post_author,'post_title' => $p -> post_title,'post_body' => $p -> post_body);}$res = View::make('home.index')-> with('posts', $data);Cache::forever('staticPageCache_home', $res);return '刷新首页缓存成功!';}return '对不起,只有管理员组才可进行此操作!';}我给后台添加了一个项目, 对应这个方法, 方法内容和首页的大同小异, 取数据, 然后Cache::forever 刷新一下缓存,就这么简单,当然了,上面的Auth::user() 判断是个简单的判断,只有管理员组才能进行刷新操作,呵呵,抓住特点查询内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • laravel sql语句记录方式(推荐)
  • laravel5.* 打印出执行的sql语句的方法
  • laravel框架执行原生sql语句及使用paginate分页的方法
  • laravel实现查询最后执行的一条sql语句的方法
  • laravel使用原生sql语句并调用的方法
  • laravel 获取某个查询的查询sql语句方法
  • laravel框架实现利用监听器进行sql语句记录功能
  • laravel 使用查询构造器配合原生sql语句查询的例子
  • php函数实现判断是否移动端访问
  • php字符串中抽取子串操作实例分析
  • php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
  • php伪造来源http_referer的方法实例详解
  • php并发多进程处理利器gearman使用介绍
  • php下统计用户在线时间的一种尝试
  • php中让上传的文件大小在上传前就受限制的两种解决方法
  • php 作用域解析运算符(::)
  • php5.3以上版本安装zendoptimizer扩展
  • php实现的mysql主从数据库状态检测功能示例
  • Laravel 中大量数据查询有什么技巧吗
  • laravel中的save()是什么意思.
  • laravel中的join用法
  • 如何在laravel中截取字符串
  • laravel 框架中试图中怎样用if标签
  • 在laravel中/和./分别代表哪里
  • 【PHP】laravel中获取当前路由名称
  • 什么是Laravel?
  • laravel框架中倒计时怎么写
  • laravel 中如何使用断言
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php技巧laravel sql语句记录方式(推荐)laravel5.* 打印出执行的sql语句的方法laravel框架执行原生sql语句及使用paginate分页的方法laravel实现查询最后执行的一条sql语句的方法laravel使用原生sql语句并调用的方法laravel 获取某个查询的查询sql语句方法laravel框架实现利用监听器进行sql语句记录功能laravel 使用查询构造器配合原生sql语句查询的例子php函数实现判断是否移动端访问php字符串中抽取子串操作实例分析php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载php伪造来源http_referer的方法实例详解php并发多进程处理利器gearman使用介绍php下统计用户在线时间的一种尝试php中让上传的文件大小在上传前就受限制的两种解决方法php 作用域解析运算符(::)php5.3以上版本安装zendoptimizer扩展php实现的mysql主从数据库状态检测功能示例php中json_decode()和json_encodphp 数组和字符串互相转换实现方php中使用curl实现get和post请求php中iconv函数使用方法php日期转时间戳,指定日期转换成php 页面跳转到另一个页面的多种php中文处理 中文字符串截取(mb_php下intval()和(int)转换使用与利用phpexcel实现excel数据的导入phpmyadmin 配置文件详解(配置)php messagepack介绍php7 错误处理机制修改实例分析常用的php adodb使用方法集锦详解wordpress开发中get_header()获取头部php性能优化大全(php.ini)php模拟asp.net的stringbuilder类实现方法php实现基本留言板功能原理与步骤详解php获取微信基础接口凭证access_token使用php 5.0创建图形的巧妙方法php数组常用函数实例小结
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved