Bonjour,
Je souhaite actuellement implémenter un compteur de vue sur un systeme d'annonce, mais j'avoue qu'avec laravel je suis un peu perdu, un petit coup de pouce serais vraiment sympa. actuellement j'essaye de faire un update
public function show($slug){
$advert = Advertissement::where('slug',$slug)->firstOrFail();
$author = $advert->user;
$socials = Social::all();
$catAdvert = AdvertCategory::with(['advertissements' => function($query){
$query->orderBy('created_at','DESC')->get();
}]);
Advertissement::update([
'view_count' => $advert->view_count + 1
]);
return View::make('advertissements.show',compact('advert','author','catAdvert','socials'));
}
Mais lors de l'execution un jolie petit message d'erreur
Non-static method Illuminate\Database\Eloquent\Model::update() should not be called statically, assuming $this from incompatible context
Sachant que je veu que mon compteur s'increment par article.
Voici le schema de ma table
Schema::create('advertissements', function(Blueprint $table)
{
$table->increments('id');
$table->string('title');
$table->string('descritpion');
$table->string('content');
$table->integer('is_online')->default(1);
$table->string('firstname');
$table->string('lastname');
$table->integer('club_id');
$table->integer('view_count')->default(0);
$table->integer('advercategory_id');
$table->timestamps();
});
Merci pour votre aide
Hello,
Voici comment tu devrais procéder :
<?php
public function show($slug){
$advert = Advertissement::where('slug',$slug)->firstOrFail();
//Regarde pour la fonction increment, elle sera plus propre a utiliser (même si le +1 fonctionne)
//Ce serait quelque chose comme ça : $advert->increment('view_count');
$advert->update(['view_count' => $advert->view_count + 1]);
$author = $advert->user;
$socials = Social::all();
$catAdvert = AdvertCategory::with(['advertissements' => function($query){
$query->orderBy('created_at','DESC')->get();
}]);
return View::make('advertissements.show',compact('advert','author','catAdvert','socials'));
}
Je n'ai pas testé, mais ca devrait être ça !
Merci Pallmallshow pour ton aide je vais test et reviens vers toi pour te dire les résultats.
Aprés il est vrai que je voulais utilisé les Events de laravel 4. mais j'avoue que je rique de me perdre vite.
Pallmallshow je n'ai pas l'impression qu'il update à chaque fois que la personne visualise l'annonce .
En faite si il update bien mais pas par session en faite, merci je vais essayé de faire par session now pour éviter le spaming d'un user