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 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', '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() 判断是个简单的判断,只有管理员组才能进行刷新 *** 作,呵呵
find -->返回 object or emptyex:
$p = Project::find($id)
if(empty($p)) {
dd('project is empty')
}
get -->返回object , 透过count 方法判断
ex:
$p = Project::where('user_id', '=', $userid)->get()
if($p->count() == 0) {
dd('project is empty')
}
Laravel框架中的DB类让我们可以方便的进行数据库 *** 作,比如常见的query查询:DB::query('SELECT * FROM users')
Larvel还提供了类似CI框架中Active Record的Fluent Query Builder : DB::table('user')->where('id','=','1')->get()
虽然从 *** 作上和普通查询相差不大,但是需要注意到是Laravel的查询结果和原生查询不同。
简单建立一个contents表测试下,表里有content字段,我们查询一下:
$content = DB::table('contents')->where('id','=','1')->get()
最后打印一下$content变量看看有什么不同:
array(1)
{
[0]=>object(stdClass)#31 (1) {
["content"]=>string(24) "这是一个测试~~" }
}
从上面可以知道查询的结果是一个包含对象的数组,因此我们要取得content值就必须先迭代:
foreach($contents as $content)
{ echo $content->content
}
总体来说Laravel的数据库 *** 作很容易上手。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)