Ich baue ein kleines Projekt mit Getstream Laravel-Paket. Ich habe jedoch ein Problem beim Anzeigen von Benachrichtigungen für neue Follower. Ich bekomme ein leeres Ergebnis, wenn ich \FeedManager::getNotificationFeed($request->user()->id)->getActivities()
in einer Controller-Methode aufrufen. Ich habe meine follow
Modell wie folgt aussehen:Probleme beim Abrufen des Benachrichtigungsfeeds für neue Folgen bei Verwendung von Stream-Laravel
class Follow extends Model
{
protected $fillable = ['target_id'];
public function user()
{
return $this->belongsTo(User::class);
}
public function target()
{
return $this->belongsTo(User::class);
}
public function activityNotify()
{
$targetFeed = \FeedManager::getNotificationFeed($this->target->id);
return array($targetFeed);
}
}
Dann wird die Controller-Aktion, um die Benachrichtigungen zu erhalten für neue wie folgt aussieht folgt:
public function notification(Request $request)
{
$feed = \FeedManager::getNotificationFeed($request->user()->id);
dd($feed->getActivities());
$activities = $feed->getActivities(0,25)['results'];
return view('feed.notifications', [
'activities' => $activities,
]);
}
Im Benutzermodell habe ich eine Beziehung definiert, dass ein Benutzer hat viele Folgen. Und schließlich die folgen und unfollow Aktionen im FollowController
sieht wie folgt aus:
public function follow(Request $request)
{
// Create a new follow instance for the authenticated user
// This target_id will come from a hidden field input after clicking the
// follow button
$request->user()->follows()->create([
'target_id' => $request->target_id,
]);
\FeedManager::followUser($request->user()->id, $request->target_id);
return redirect()->back();
}
public function unfollow($user_id, Request $request)
{
$follow = $request->user()->follows()->where('target_id', $user_id)->first();
\FeedManager::unfollowUser($request->user()->id, $follow->target_id);
$follow->delete();
return redirect()->back();
}
Nicht sicher, ob es etwas, was ich ausgelassen, aber ich kann nicht Resultate für die Benachrichtigung-Feed erhalten. Wenn ich vom Dashboard aus zum Explorer-Tab gehe, sehe ich, dass ich zwei neue Follows bekommen habe, die sowohl den Timeline- als auch den timeline_aggregated Feedtyp generiert haben. Oder wie bekomme ich den Benachrichtigungs-Feed von einer Controller-Aktion? Vielen Dank im Voraus
Vielen Dank für Ihre Rückkehr. Ok, ich habe diesen Ansatz versucht, aber wenn ich 'notification' als Ziel Feed Slug gesetzt habe, erhalte ich einen Fehler: {" target ": [" Du kannst nur flachen Feeds folgen, nicht Feeds vom Typ Benachrichtigung "]}. Auch nur um sicherzustellen, dass ich auf dem richtigen Weg bin, geht die Codezeile, um die Folge-Beziehung zu etablieren, in die Follow-Methode im Controller richtig? –
@ChristopherVundi Entschuldigung Ich schrieb die Anfrage den Weg herum –
Hey aktualisiert die Codezeile, die Sie geteilt haben. Platzierte es innerhalb der Follow-Methode in der FollowController. Der Aufruf von '\ FeedManager :: getNotificationFeed ($ request-> user() -> id) -> getActivities()' von der 'notification' Methode innerhalb des' FeedsController' bringt jedoch eine leere Ergebnismenge zurück. Kann ich irgendetwas falsch machen? Mein Code ist genau wie oben. –