Laravel 中大量数据查询有什么技巧吗

Laravel 中大量数据查询有什么技巧吗,第1张

->get(array('postsid', 'postssupport', 'postsagainst', 'usersusername', 'postspost_author', 'postspost_title', 'postspost_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('homeindex')
-> with('posts', $data);
Cache::forever('staticPageCache_home', $res);
}
// 返回缓存的数据
return Cache::get('staticPageCache_home');
}
}
这里我用到了三个api
1) Cache::has ,这个判断是说如果当前不存在 staticPageCache_home 这个名字的缓存, 就立即去取数据
2) Cache::forever, 这个从用例文档里面可知是"永久缓存"的意思, 因为我一般都是很勤劳的,如果发表了博文,自己再去后台立即刷新一下缓存就好了, 所以不需要设置过期啊失效时间之类的, 当然这个是要按各自的具体需求来的
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', 'usersid', '=', 'postspost_author')
-> order_by('postscreated_at', 'desc')
->get(array('postsid', 'postssupport', 'postsagainst', 'usersusername', 'postspost_author', 'postspost_title', 'postspost_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('homeindex')
-> with('posts', $data);
Cache::forever('staticPageCache_home', $res);
return '刷新首页缓存成功!';
}
return '对不起,只有管理员组才可进行此 *** 作!';
}
我给后台添加了一个项目, 对应这个方法, 方法内容和首页的大同小异, 取数据, 然后Cache::forever 刷新一下缓存,就这么简单,当然了,上面的Auth::user() 判断是个简单的判断,只有管理员组才能进行刷新 *** 作,呵呵

1) 服务器要求
在安装 Laravel 前需要安装一些它的依赖前提条件,主要是一些基本的参数调整,比如升级系统到最新版本,sudo 权限和安装依赖包。
当你连接到你的服务器时,请确保你能通以下命令能成功的使用 EPEL 仓库并且升级你的服务器。
CentOS-7
#yum install epel-release
# rpm -Uvh dlFedoraprojectorg/pub/epel/epel-release-latest-7noarchrpm
# rpm -Uvh mirrorwebtaticcom/yum/el7/webtatic-releaserpm
#yum update
Ubuntu
#apt-get install python-software-properties
# add-apt-repository ppa:ondrej/php5
#apt-get update
#apt-get install -y php5 mcrypt php5-mcrypt php5-gd
2) 防火墙安装
系统防火墙和 SELinux 设置对于用于产品应用安全来说非常重要,当你使用测试服务器的时候可以关闭防火墙,用以下命令行设置 SELinux 成宽容模式(permissive)来保证安装程序不受它们的影响。
#setenforce0
3) Apache, MariaDB, PHP 安装
Laravel 安装程序需要完成安装 LAMP 整个环境,需要额外安装 OpenSSL、PDO,Mbstring 和 Tokenizer 等 PHP 扩展。如果 LAMP 已经运行在你的服务器上你可以跳过这一步,直接确认一些必要的 PHP 插件是否安装好。
要安装完整 AMP 你需要在自己的服务器上运行以下命令。
CentOS
#yum install >在Laravel5中出现了一个新的东西,叫做contracts,那么它到底是什么?有什么用?怎么用?我们就来探讨下吧。 我们先来看看官方文档中对contracts的定义: Laravel's Contracts are a set of interfaces that define the core services provided by the framework
意思是说Laravel的Contracts是一个由 框架提供 的定义了 核心服务接口 的集合。 也就是说,每一个Contract都是一个接口,对应一个框架核心服务。 那它的意义何在?官网给出的解释也很简单:使用接口是为了 松耦合 和 简单 。 先不讲大道理,先来点干货,看看怎么使用contract 先浏览下contracts接口列表: 代码如下:
IlluminateContractsAuthGuard
IlluminateContractsAuthPasswordBroker
IlluminateContractsBusDispatcher
IlluminateContractsCacheRepository
IlluminateContractsCacheFactory
IlluminateContractsConfigRepository
IlluminateContractsContainerContainer
IlluminateContractsCookieFactory
IlluminateContractsCookieQueueingFactory
IlluminateContractsEncryptionEncrypter
IlluminateContractsRoutingRegistrar …… 太多了,懒得继续贴了,官网手册里有。我们就拿 IlluminateContractsRoutingRegistrar 这个contract来演示一下吧。
首先,打开 app/Providers/AppServiceProviderphp,注意register方法: 代码如下:
public function register()
{
$this->app->bind(
'IlluminateContractsAuthRegistrar',
'AppServicesRegistrar'
);
} $this->app 就是Application对象,也是容器对象,通过 $this->app->bind 方法我们绑定了一个实现IlluminateContractsAuthRegistrar接口的类AppServicesRegistrar。 注意,IlluminateContractsAuthRegistrar就是一个contract。AppServicesRegistrar 这个类文件在 app/Services/Registrarphp。 接着我们看 App>安装composer。安装之前要确保目录:wamp\bin\php\php543下的phpini文件中的php_openssldll扩展库是开启的,否则,composer在安装过程中会出现错误提示。(注意:wamp安装文件下会有两个phpini文件,我们要修改的是php目录下的phpini文件)。
下载最新Laravel框架,解压到服务器根目录的>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13443373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-07
下一篇 2023-08-07

发表评论

登录后才能评论

评论列表(0条)

保存