我有DB表,用IP列和DateTime标记记录请求.我试图以一种让我计算某个IP发出请求的天数的方式来获取这些数据.我正在使用Laravel的查询构建器.
到目前为止,这就是我所拥有的:
$data = DB::table('requests')
->groupBy('ip')
->select('ip',
DB::raw('COUNT(DISTINCT created_at) as days'),
DB::raw('COUNT(*) as requests'))
->orderBy('days', 'desc')
->take(50)
->get();
Run Code Online (Sandbox Code Playgroud)
我的问题是时间戳也包含小时,分钟和秒.因此,"天数"计数与总请求数大致相同.我想只计算活跃的天数.
我正在Laravel 4中构建一个应用程序,我需要运行多个查询作为UPDATE或INSERT查询,以避免重复插入时出现PK违规.我无法通过Laravel中的查询构建器找到任何方法.
我可以修改DB类或类似的东西吗?或者我需要编写纯SQL语句?
我是第一次在L4中设置队列,我遇到了一些问题.我有这样简单的控制器方法:
public function getIndex()
{
$data = array(
'offset' => 3300000,
'site' => 1
);
Queue::push('Class@jobmethod', $data);
return 'OK!';
}
Run Code Online (Sandbox Code Playgroud)
在作业方法的底部,我做这样的事情:
public function jobmethod()
{
....
$data = array(
'offset' => $data['offset'] + 100,
'site' => $data['site']
);
Queue::push('Class@jobmethod', $data);
$job->delete();
}
Run Code Online (Sandbox Code Playgroud)
因此,作业再次以更高的偏移量循环遍历队列.现在我的问题是,当我在浏览器中调用控制器方法时,它将永远不会返回OK!,但只是继续加载页面?我将作业设置为登录数据库表,我可以看到它持续运行了几次.
有没有人知道这里发生了什么?
我试过向__construct
模块控制器添加一个空方法.
致命错误:在第16行的/var/www/rodebutik.dk/public_html/wb/vqmod/vqcache/vq2-system_engine_controller.php中调用非对象的成员函数get()
第16行:
public function __get($key) {
return $this->registry->get($key);
}
Run Code Online (Sandbox Code Playgroud)