【问题标题】:magento visitor logsmagento 访客日志
【发布时间】:2011-11-01 03:09:44
【问题描述】:

有没有办法访问 Magento 中的用户登录?我知道数据库有一个名为log_visitor 的表可以查看访问者日志,log_visitor_info 记录有关访问者(IP、用户代理)的更多信息。我如何获得这些数据?当我写

$visitors = Mage::getModel('log/visitor')->getCollection()
foreach ($visitors as $visitor)  {
    print_r($visitor->getData());
}

我收到一个错误PHP Fatal error: Uncaught exception 'Exception' with message 'Recoverable Error: Method Varien_Db_Select::__toString() must return a string value in /path/to/server/lib/Varien/Db/Adapter/Pdo/Mysql.php on line 272' in /path/to/server/app/code/core/Mage/Core/functions.php:239

【问题讨论】:

  • 你试过用debug()代替getData()吗?

标签: magento logging models


【解决方案1】:

如果您不确定对象的 API,可以使用直接数据库查询。

例如

      $read = Mage::getSingleton('core/resource')->getConnection('core_read');

      $results = $read->fetchAll("select * from log_visitor_info");

      foreach($resulst as $res)
        echo $res['http_referer'] . " - " . $res['http_user_agent'] . " - " . $res['remote_addr'] . " - ";

【讨论】:

  • 小心执行直接数据库查询。 Magento 的数据库充斥着私钥和你能想象到的一切。我并不是说这个答案在任何方面都不好,但我还没有发现需要使用无法使用 Magento 的 EAV 模型完成的数据库查询
【解决方案2】:

您需要在 php 对象上使用 var_dump 或 var_export。

以下代码将输出每个访问者对象:

$visitors = Mage::getModel('log/visitor')->getCollection();

foreach ($visitors as $visitor) {
        var_dump($visitor);
}

【讨论】:

    猜你喜欢
    • 2017-10-31
    • 2011-04-07
    • 2018-01-14
    • 2019-06-23
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    相关资源
    最近更新 更多