我正在使用GetStream的Laravel集成(github.com/GetStream/stream-laravel),但注意到'actor'只是一个可交换模型。我正在尝试允许登录用户发布,但我想允许“匿名”(未经身份验证的)用户喜欢使用UserAgent / fingerprint / ip / session等的帖子。
有没有人做过类似的事情或者知道一个方法来热交换演员或允许特定情况下的actor_id使用另一个模型?
答案 0 :(得分:0)
您应该能够使用ActivityTrait(https://github.com/GetStream/stream-laravel/blob/master/src/GetStream/StreamLaravel/Eloquent/ActivityTrait.php)而无需使用activityActor
方法,该方法在此处调用:https://github.com/GetStream/stream-laravel/blob/master/src/GetStream/StreamLaravel/Eloquent/ActivityTrait.php#L130。
例如:
class Model
{
use ActivityTrait {activityActor as traitActivityActor;}
public function activityActor()
{
if (/* check if authenticated user */) {
return $this->traitActivityActor(); // Reusing the same method.
}
return /* some other logic to return identifier for anonymous user */;
}
}
此软件包还有其他地方可以挂钩并调整功能。但我认为在你的情况下,这对于这个模型来说可能是最简单的。
我希望这可以帮助你朝着正确的方向前进。