我正在为 OctoberCMS 开发一个报告小部件,并且需要为我的查询构建一些条件语句。
我有一个表 (user_access_log),其中包含用户 ID、IP 地址和时间戳的记录。
我的访问日志模型是这样的:
/**
* @var array
*/
public $belongsTo = [
'user' => ['Models\User']
];
我的用户模型是这样的:
/**
* @var array Relations
*/
public $belongsToMany = [
'groups' => ['Models\UserGroup', 'table' => 'users_groups']
];
更新:现在我已经像这样扩展了用户模型:
UserModel::extend(function($model)
{
$model->hasMany['logs'] = [
'Models\AccessLog',
'key' => 'user_id',
];
});
并将我的小部件的查询更新为:
$query = UserGroup::whereHas('user',function($query) {
$query->whereHas('logs',function($query) {
// Just some query to get a resultset back so count() > 1
$query->whereNotNull('created_at');
});
});
$userLog = $query->where('name', 'Users')->get();
但是,我仍然没有返回任何结果。实际上,就好像查询甚至没有运行一样。我的调试栏中没有显示任何内容。我试图将数组传递给我的视图,它现在说我有一个未定义的变量。