Este artículo se basa en un tutorial anterior sobre cómo agregar la función "Seguir" a una aplicación Laravel usando Stream. Esta parte se centra en configurar modelos para el seguimiento de actividades, explorar los tipos de alimentación de Stream, recuperar los alimentos y hacerlos en las vistas.
conceptos clave:
feedManager
simplifica las operaciones de alimentación, ofrece alimentos pre-construidos (usuario, noticias, notificación). seguir controller
usa freedManager
para seguir/dejar de seguir, la actualización se alimenta en consecuencia. Structura de datos de actividad:
Stream representa datos como actividades con al menos: actor, verbo, objeto y tiempo. También se permiten campos personalizados.
Ejemplo: Definición del modelo Actationverb
en el modelo [&] post :
class Post extends Model
{
// ... other code ...
/**
* Stream: Activity verb for post creation.
*/
public function activityVerb()
{
return 'created';
}
}
utilizando el FeedManager:
the feedManager simplifica las interacciones de alimentación. Se accede a través del alias de fachada establecido en
config/app.php .
Pre-Configured Feeds:
the freedManager proporciona alimentos pre-construidos: usuario, noticias y notificación. Este ejemplo utiliza principalmente noticias y alimentos de notificación. Más detalles sobre otros tipos de alimentación están disponibles
aquí .
Funcionalidad de seguir/Defirmar con FeedManager:
the seguir controller se actualiza para usar
freedManager para acciones de seguimiento eficiente:
// app/Http/Controllers/FollowController.php
public function follow(User $user)
{
if (!Auth::user()->isFollowing($user->id)) {
Auth::user()->follows()->create(['target_id' => $user->id]);
FeedManager::followUser(Auth::id(), $user->id);
return back()->with('success', 'Now following ' . $user->name);
} else {
return back()->with('error', 'Already following this user.');
}
}
public function unfollow(User $user)
{
if (Auth::user()->isFollowing($user->id)) {
$follow = Auth::user()->follows()->where('target_id', $user->id)->first();
FeedManager::unfollowUser(Auth::id(), $follow->target_id);
$follow->delete();
return back()->with('success', 'Unfollowed ' . $user->name);
} else {
return back()->with('error', 'Not following this user.');
}
}
mostrando alimentos:
a alimentScontroller se crea para manejar la recuperación de alimentación y mostrar:
use GetStream\StreamLaravel\Enrich;
class FeedsController extends Controller
{
// ... other code ...
public function newsFeed(Request $request)
{
$feed = FeedManager::getNewsFeeds($request->user()->id)['timeline'];
$activities = $feed->getActivities(0, 25)['results'];
$activities = $this->enrich()->enrichActivities($activities);
return view('feed.newsfeed', ['activities' => $activities]);
}
private function enrich()
{
return new Enrich;
}
// ... other methods ...
}
el método enrich maneja la transformación de datos para la representación de la vista. Se define una ruta para acceder a esta acción del controlador.
Templating:
the newsfeed ver iterata a través de actividades enriquecidas, usando un parcial (
stream-laravel :: render_activity ) para realizar actividades individuales. Actividad personalizada Parcials (e.g.,
create.blade.php para la creación posterior) se crean dentro de la carpeta
actividad ver.
creat.blade.php parcial:
{{ date('F j, Y, g:i a', strtotime($activity['time'])) }}
{{ $activity['actor']['name'] }} created a new post titled {{ $activity['object']['title'] }}
Feed de notificación:
el modelo seguir se actualiza para incluir el manejo de la alimentación de notificaciones:
class Follow extends Model
{
use \GetStream\StreamLaravel\Eloquent\ActivityTrait;
// ... other code ...
public function activityNotify()
{
$targetFeed = FeedManager::getNotificationFeed($this->target_id);
return [$targetFeed];
}
public function activityVerb()
{
return 'follow';
}
public function activityExtraData()
{
return ['followed' => $this->target, 'follower' => $this->user];
}
}
Se crean una acción, ruta y ver (&&&&] de controlador similar a las notificaciones.blade.php ) para el alimento de notificación. Se usa un parcial separado ( notificación_follow.blade.php
) para las notificaciones de seguimiento.
Stream simplifica la adición de la funcionalidad de alimentación robusta a las aplicaciones de Laravel. El tutorial demuestra cómo rastrear diversas actividades, administrar diferentes tipos de alimentación y representarlas de manera eficiente en las vistas. Se fomenta una mayor exploración de las capacidades de Stream.
faqs (ligeramente reformateado):
La sección de preguntas frecuentes está bien escrita y proporciona información útil. No se necesitan cambios significativos, pero los ajustes de formato menores podrían mejorar la legibilidad. Considere usar una lista numerada o términos clave en negrita para una mejor organización visual.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3