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

Laravel5.2之Redis保存页面浏览量

备注:最近在学习github上别人的源码时,发现好多在计算一篇博客页面访问量view_count时都是这么做的:利用Laravel的事件监听器监听IP访问该post,然后页面每访问一次,都刷新一次MySQL...$post, $ip) { $this->post = $post; $this->ip = $ip; } 顺便也把视图简单写下吧: post的浏览量键抹掉,等着下一次请求重新开始计数 Redis::command('HDEL', [$cacheKey, $ip...,极端情况300秒内都是旧数据,而缓存里已经有了29个新增访问量 //实际上也可以这样做:在缓存post的时候,可以把view_count单独拿出来存入键值里如single_view_count...还推荐一个Redis客户端:Redis Desktop Manager,可以在客户端里看下各个键值: 页面视图中可以利用上面推荐的barryvdh/laravel-debugbar插件观察下请求过程产生的数据

8.8K41

分享5个非常有用的Laravel Blade指令

简介 Blade是Laravel提供的一个非常简单、强大的模板引擎,不同于其他流行的PHP模板引擎,Blade在视图中并不约束你使用PHP原生代码。...所有的Blade视图都会被编译成原生PHP代码并缓存起来直到被修改,这意味着对应用的性能而言Blade基本上是零开销。...不过 Laravel 也为此提供了 @guest 命令: @guest // 用户未认证 @endguest 我们也可以使用 else 语句来组合这两个命令: @guest // 用户未认证 @else...(['first-view-name', 'second-view-name']); 当你只想在一定逻辑的基础上(如:一个已通过认证的用户)添加一些内容的时候,根据条件引入视图就非常有用了。...来做到: @includeWhen($post->hasComments(), 'posts.comments'); 如果你有自定义主题系统或者你需要动态地创建 Blade 视图,那么检查文件是否存在就是必须要做的

98430
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel5.2之Model Observer模型观察者

    说明:本文主要学习下Laravel的Model Observer模型观察者,把一点点经验分享出来希望对别人能有帮助。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。...备注:上一篇文章:Laravel5.2之Redis保存页面浏览量,在开发的时候有个逻辑有点在意:那篇文章再用Redis保存浏览量后,当浏览量达到设置的次数后刷到MySQL里,同时把Redis里该浏览量键抹掉...,redis中浏览量刷进MySQL后,把该篇post的浏览量键抹掉,等着下一次请求重新开始计数 Redis::command('HDEL', [$cacheKey, $...//实际上也可以这样做:在缓存post的时候,可以把view_count单独拿出来存入键值里如single_view_count,每一次都是给这个值加1,然后把这个值传入视图里...$id生命时间10分钟 //在把内容缓存进Redis里,加上tag标签以便于识别和分别操作,个人觉得这是一个好习惯实际上.这里加个该post对应的表名标签,保持唯一性 $

    1.7K21

    Laravel Ignition 功能全解析

    尽管在 Laravel 中 Whoops 是默认值,但它是一个框架无关的(错误收集展示)。它仅仅显示通用信息。 ? 这是 Ignition 的截图,我们建立的新的错误视图。...Ignition 是一个 Laravel 特定的错误页面。因此,它可以像钩子一样,"挂载" 到框架中,用来显示未编译的视图路径和您的 Blade 视图。...假设你有一个路由定义是这样的:: Route::get('/posts/{post}', function (Post $post) { // }); 当此路由发生异常,我们将在 Ignition...接下来是 “视图” 部分。如果异常发生在视图中,我们将在这里显示视图名称。甚至:我们还将给出传递给视图的所有数据的列表。 用户选项卡 ?...这个选项卡替换了默认的 stack trace 选项卡,使用一个自定义选项卡,允许您在错误屏幕上编辑代码。它就在如下操作。 ?

    3.1K40

    Nginx+PHP(laravel) 环境 499 错误码排查过程小记

    即:「客户端主动关闭连接」 但某一时间段内全部请求均为返回 499,这显然不是所有客户端主动意识上的「关闭」,可能是因为客户端等待超时,自动关闭连接;加上 499 的时间段内包含部分 502,让我不得不怀疑...发现情况有所改善—— 499 错误已经由某一时段大量、集中出现变为偶尔发生,且只出现在某几个特定 URI 请求上。 我决定对这几个 URI 对应的接口控制器代码进行检查。...经过仔细检查,发现几个严重问题: 查出某表「全部结果」,再「遍历」结果集,查询每条记录「多个字段」的关联模型 未执行 php artisan optimize 未关闭 debug 模式 未调整 log_level...= post->comments; } 在 Laravel 框架内使用类似如上的方式查询,假设作者的文章数为 n,每篇文章关联的模型有 2 个(likes & comments),则执行此控制器,对于数据库的时间复杂度为...(但此值仍然不够理想,受到视图渲染、操作系统等原因的影响,后期继续优化,不属于本文讨论范围。)

    1.3K20

    Laravel5.2之Validator

    引言: Laravel提供了Validator模块,可解决表单提交验证等一些需求,并且可以在视图View中显示错误验证信息,交互还是很友好的。注明:作者水平有限,有错误或建议请指正,轻拍。...(一)、post表单提交,并在视图中显示验证错误信息 1、先在routes.php中写两个路由: Route::get('laravel/test/validator', 'PHPTestController...可由php artisan make:controller PHPTestController这个Laravel自带的artisan命令来创建。...4、写显示验证错误信息视图 在laravel中,laravel会在每次请求把errors变量刷到session中,和视图模板绑定,所以errors变量在视图模板中可用,官方文档原话:"So, it is...一个好用的PHP调试函数:debug_backtrace(),在laravel任意一个文件如自己创建的PHPTestController控制器的postValidator()函数中加上一句: var_dump

    13.3K31

    Laravel 5 系列入门教程(二)【最适合中国人的 Laravel 教程】

    我们将改变学习路线,不再像 Laravel 4 教程那样先构建登录系统。在本篇教程中,我们将一起构建 Pages 的管理功能,尝试 Laravel 的路由和 PHP 的命名空间。 1....如果你用过 Laravel 4,会发现 Laravel 5 的命名空间规划比较怪异,这其实是一个非常大的进步。...Laravel 5 把命名空间全部隔开,控制器在 `\App\Http\Controllers`,模型在 `\App`,让我们在刚上手的时候就体验命名空间分离的感觉,总体上其实是会降低学习成本的。...在 `class AdminHomeController extends Controller {` 上面增加一行: use App\Page; 修改 index() 的代码如下: public function...至此,包含 路由 》 控制器 》 模型 》 视图 的整个流程都已经完成。 4. 完成 Pages 管理功能 接下来,我将记录下我实现 Pages 管理功能的过程,不再做过多的阐述。

    90040

    Laravel5.2之Demo1——URL生成和存储

    (5)、在创建的迁移文件内增加两个字段:table->text('url'); 注明:可以安装phpstorm这个IDE,使用它的database模块查看数据库,说实话个人用的感觉还挺顺手的,当然也可以安装...这里的url表示提交表单时的路由,方法为post。在这里使用laravelcollective/html这个组件,顺便了解下怎么在laravel中安装组件。 这里书中使用了laravel4....不过有时也推荐使用它的Query Builder查询构造器,实际上就是SQL语句封装的类,性能会比较高一些,个人遇到过一个场景:使用Eloquent ORM性能有点慢,导致PHP执行过长报503 Time...实际上,控制器也就是路由层route、视图层view与模型model层的黏合剂而已,一般写laravel代码流程也仅此而已:现在路由里写好路由,再建立好model(包括创建好migrations和model...Session::get()了,这是因为laravel会自动把这个变量和视图模板绑定,这errors是个特殊的变量,在form.blade.php视图中添加上验证错误信息代码。

    24.1K31

    Laravel8的迁移压缩、任务批处理、速率限制优化 | 文末抽奖

    之前写了一篇Laravel提高DB查询效率的文章,转发到群里后竟然有人质疑我说“Laravel是他好几年前用的框架,没想到现在还有人在用。” 纳尼,什么意思嘛?别忘了PHP是最好的语言!...个人认为Laravel是非常优雅的开发框架:优雅的设计模式、强大的功能实现、各种方便的扩展、持续的版本更新,更主要的是迄今为止我认为最优秀的技术开发社区。 我必须为Laravel打Call。...组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...当在未执行任何其他迁移的情况下,你迁移数据库时,Laravel 将会先执行 schema 文件中的 SQL,再执行不包含在 schema 中的剩余迁移。...将速率限制器的名称传入中间件来进行绑定: Route::middleware(['throttle:uploads'])->group(function () { Route::post('/audio

    1.9K21

    结合 Bootstrap + Vue 组件实现 Laravel 异步分页功能

    在日常开发中,对数据库查询结果进行分页也是一个非常常见的需求,我们可以基于之前介绍的查询方法和前端 HTML 视图实现分页功能,不过从 Laravel 5.3 开始,Laravel 框架就已经为我们提供了非常完整的分页解决方案...不管你使用查询构建器还是 Eloquent 模型类,都可以在一分钟内完成分页功能,Laravel 还为我们提供了丰富的自定义支持,不管是后端的分页器,前端的分页链接,还是整个分页视图,都可以按需进行定制化开发...创建文章列表视图 首先我们来创建文章列表视图,在 resources/views 目录下创建一个子目录 post,然后在该目录下创建视图文件 index.blade.php,并编写视图代码如下: 上,除了文章列表之外,你还可以将这个组件应用到评论、用户等所有其它需要分页的地方。...,这部分的功能和 Laravel 自带的分页视图 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap

    7.4K20

    Laravel 框架入门

    resources/:存放视图(views)和前端相关的文件。public/:Web 服务器公开的根目录,存放 index.php 和资源文件(如 JS、CSS)。config/:存放应用的配置文件。...$post = new Post();$post->title = 'Laravel 入门';$post->body = '这是关于 Laravel 的文章。'...;$post->save();// 获取所有文章$posts = Post::all();// 查找单条记录$post = Post::find(1);// 更新文章$post->title = '更新后的标题...';$post->save();// 删除文章$post->delete();Eloquent 让我们不再需要编写复杂的 SQL,简洁的 API 就能实现对数据库的增删改查操作。...Blade 模板引擎Laravel 提供了一个简单易用的模板引擎,叫做 Blade。Blade 让你在视图中更方便地使用控制结构(如条件判断、循环等)并且避免了直接在 HTML 中写 PHP 代码。

    13800

    Laravel 7发行说明

    如前所述,在大改之后的 Laravel7 当中这是一个非常小又普通的一个功能,而且还没有演示匿名组件,内联视图组件和各种各样的其他特性。...post:slug}', function (User $user, Post $post) { return $post; }); 当使用自定义键隐式绑定作为嵌套的路由参数时,Laravel...7 将自动确定查询范围,以使用约定猜测其父级上的关系名称,以其父级检索嵌套模型。...在大型应用程序(例如,具有800条或更多路由的应用程序)上,这些改进可以使简单的「Hello World」基准测试每秒的请求速度 提高2倍 ,而无需更改应用程序。...有时可能希望指定可以尝试多次的任务,但是如果重试是由给定数量的异常触发的,则该任务将失败。在Laravel7中,可以在任务类上定义 maxExceptions 属性: <?

    9K20

    laravel5分钟完成登录注册

    以下均是在laravel5.2+版本进行操作,5.1部分适用,建议使用5.2新增许多方便的功能,5.1的多表验证极其麻烦,不推荐使用 在使用laravel框架前,我们需要安装composer 在安装好...composer以后,让我们建一个新的项目 不懂安装composer的可以看    http://www.phpcomposer.com/ composer create-project laravel.../laravel laravel 最后的参数是我们需要建立的项目名 laravel 框架默认带着一个model----User,直接放在app下(事实上我们往往会把model放在一个文件夹下,例如我们可以自己去新增...,这个form的action是这样的 POST" action="{{ url('/register...需要在.env文件里填写正确的邮箱,以便于我们发邮件确认。 以上均是基本的单表验证,往往我们用的是前台的一个表和后台的一个表进行多表验证,欢迎看我的下一篇博文,laravel多表验证。

    18020

    3分钟短文:Laravel应用跟用户打交道,就从拿到他们的数据开始!

    引言 本来讲完路由和控制器,应该接着讲一讲视图的,但是鉴于视图的功能实在太枯燥,况且是前端页面,免不了写一些js和css。...而laravel是偏重后端的,所以为了给后端的开发同学缓冲的时间,我们跳过视图,先来说说用户数据的获取和处理,这几乎是任何应用必备之功能。 用户数据同时又是危险的!本文不会教你规避危险!...laravel把用户的输入存储在 Input 对象内,而从逻辑上看,用户输入应该归属于请求项的,所以 Request 也继承了 Input 的方法和数据。...表单的字段 firstName,还有 querystring 的查询参数 utm,还有一个是用于 CSRF 防护的laravel内置函数,默认的表单字段就是 __token,所以大可不必费心。...内获取数组可以使用点式方式读取,这是因为laravel解析的时候使用了助手类 Arr 的通用方法。

    1.5K00

    3分钟短文:Laravel应用跟用户打交道,就从拿到他们的数据开始!

    引言 本来讲完路由和控制器,应该接着讲一讲视图的,但是鉴于视图的功能实在太枯燥,况且是前端页面,免不了写一些js和css。...而laravel是偏重后端的,所以为了给后端的开发同学缓冲的时间,我们跳过视图,先来说说用户数据的获取和处理,这几乎是任何应用必备之功能。 用户数据同时又是危险的!本文不会教你规避危险!...laravel把用户的输入存储在 Input 对象内,而从逻辑上看,用户输入应该归属于请求项的,所以 Request 也继承了 Input 的方法和数据。...表单的字段 firstName,还有 querystring 的查询参数 utm,还有一个是用于 CSRF 防护的laravel内置函数,默认的表单字段就是 __token,所以大可不必费心。...内获取数组可以使用点式方式读取,这是因为laravel解析的时候使用了助手类 Arr 的通用方法。

    1.4K10

    laravel5.5功能尝鲜

    4 Package Auto Discovery功能 可以自动下载包中相关的文件,免去了手工下载配置的麻烦 使用方式:在composer.json中增加子节点extra 节点中的内容为一个下载的示例 "...文件 简单修改PostFactory文件的设置如下 use Faker\Generator as Faker; $factory->define(App\Post::class, function...',5)->create(); 9 Blade if 自定义标签 Laravel 5.5 的时候针对在视图中使用很多的逻辑判断推出了 Blade::if 来满足我们自定义 Blade 标签的用法,很简单却非常的有用...10 Markdown 邮件渲染 邮件的 Markdown 写法其实在 Laravel 5.4 的时候就已经支持了,但是对于邮件测试来说,这样的渲染结果其实不是很方便,所以在 Laravel 5.5 的时候...5.5 引进了一个新的路由注册方法:Route::view,这个主要的应用场景就是在我们站点某些页面是不需要数据操作,只是返回一个静态的视图文件的时候就可以直接这样用上。

    3K40

    3分钟短文:Laravel控制器用法光速入门

    引言 上一章我们介绍了laravel路由注册中的“花拳绣腿”,样样都是那么优雅而实用。路由传递过来的参数,在经过中间件验证和导向之后,应该去控制器接受处理了。...本文用最简单的示例,让你明白laravel中控制器是干什么的,以及怎么用。...代码时间 在开始介绍之前,我们先看一下MVC设计模式的一个概要图: Model就是模型,是数据库交互部分;View就是视图,是渲染数据的页面。...Route::post('tasks', 'TasksController@store'); 表单怎么写不在本文的介绍范围,后面我们有专门章节详细阐述视图模板。...我们且说一说接收用户表单提交数据的POST方法: public function store() { $task = new Task; $task->title = Input::get

    1.5K10

    3分钟短文:Laravel控制器用法光速入门

    引言 上一章我们介绍了laravel路由注册中的“花拳绣腿”,样样都是那么优雅而实用。路由传递过来的参数,在经过中间件验证和导向之后,应该去控制器接受处理了。...本文用最简单的示例,让你明白laravel中控制器是干什么的,以及怎么用。...代码时间 在开始介绍之前,我们先看一下MVC设计模式的一个概要图: Model就是模型,是数据库交互部分;View就是视图,是渲染数据的页面。...Route::post('tasks', 'TasksController@store'); 表单怎么写不在本文的介绍范围,后面我们有专门章节详细阐述视图模板。...我们且说一说接收用户表单提交数据的POST方法: public function store() { $task = new Task; $task->title = Input::get

    1.8K11
    领券