我有一个使用Laravel 4创建的登录/注销应用程序。我需要进行网络统计,以便每当用户登录时,它将向我显示一天之内的用户数量的折线图。

以下是我的登录方法,每当用户登录时,我便从该方法将数据保存在数据库中。

 public function postLogin() {

    $input = Input::all();
    $rules = array('email' => 'required', 'password' => 'required');
    $v = Validator::make($input, $rules);

    if ($v->fails()) {
        return Redirect::to('login')->withErrors($v);
    } else {
        $credentials = array('email' => $input['email'], 'password' => $input['password']);

        if (Auth::attempt($credentials)) {
            $id = Auth::user()->id;
            $auditor = new Auditor();
            $auditor->user_id = $id;
            $auditor->operation = 'login';
            $auditor->save();
            return Redirect::to('admin');
        } else {
            return View::make('home.login', array('message' => 'Wrong username/password!'));
        }
    }
}


我有一个控制器,可以在其中对数据库中的数据进行分组。我知道这是不正确的,但我不知道如何继续创建图形。

public function graph() {
    $auditor = new Auditor();
    $auditor = array();
    //get data from database
    $sql = "SELECT  DATE('auditor'.'created') AS date" . "COUNT('auditor'.'auditor_id') AS 'count'". "FROM 'auditor'".
    "WHERE auditor .created BETWEEN 2015-09-01 00:00:00 AND 2015-09-31 23:59:59". "GROUP BY date"."ORDER BY date";
    $result = mysqli_query($sql) or die('Query failed: ' . mysql_error());
    if ($result) {
        while ($row = mysql_fetch_assoc($result)) {

        }
    }


请您帮我画图,分组​​后是否可以在图中显示数据?

最佳答案

我第二个phpChart。过去曾用于在线报告任务。快速创建图表非常容易。

这是基于phpChart的online example -- Axis Labels Rotated Text 2:解决方案的解决方案

    <?php
$line = array(array('user', 12), array('admin', 3), array('user2', 1), array('user3', 1));

$pc = new C_PhpChartX(array($line),'user_chart');
$pc->add_plugins(array('canvasTextRenderer'));
//set series
$pc->add_series(array('renderer'=>'plugin::BarRenderer'));
//set axes
$pc->set_axes(array(
    'xaxis'  => array(
        'renderer'=>'plugin::CategoryAxisRenderer',
        'tickRenderer'=>'plugin::CanvasAxisTickRenderer'),
    'yaxis'  => array(
        'autoscale'=>true,
        'tickRenderer'=>'plugin::CanvasAxisTickRenderer')
));

$pc->draw(800,500);
?>


结果:
php - 使用PHP(laravel)/Mysql进行Web统计-LMLPHP

这是我发现的Codeproject的精彩介绍:http://www.codeproject.com/Articles/604542/Creating-Interactive-HTML5-Graphs-in-PHP

Laravel并没有提供任何图表库。您需要找到一个用PHP编写的第三方库,才能从Laravel应用生成图表。

一些免费的图表库是:


pChart-一个用于构建图表的PHP类。示例图如下所示:php - 使用PHP(laravel)/Mysql进行Web统计-LMLPHP
phpCHART - Make HTML5 Charts in PHP。示例图如下所示:php - 使用PHP(laravel)/Mysql进行Web统计-LMLPHP


我强烈建议您在StackOverflow中搜索php charting library,以查看其他有经验的用户的意见。

选择特定库时,将其作为其他任何依赖项添加到您的composer.json文件中。

08-06 12:27