J'ai un modèle d'article éloquent dans mon application Laravel 4. Il est vide pour le moment, mais ce que je veux faire est de définir deux méthodes:
de sorte que lorsque j'utilise: p> Je peux faire un suivi avec: p> et P> class Article extends Eloquent
{
public function getNextArticle()
{
// SQL query to get next article from the database
}
public function getPreviousArticle()
{
// SQL query to get previous article from the database
}
}
3 Réponses :
Je voudrais probablement l'essayer comme ça ... Je ne sais pas si cela fonctionnerait bien que
class Article extends Eloquent { public function getNextArticle() { return Article::find($this->id+1)->get(); } public function getPreviousArticle() { return Article::find($this->id-1)->get(); } }
Les identifiants sont rarement parfaitement séquentiels et non nécessaires au représentant de la commande.
J'ai la requête SQL à courir pour les articles suivants et précédents. J'essaie juste de comprendre comment je peux créer les méthodes afin que je puisse la chaîner à $ article-> trouver (1) -> suivant () par exemple.
Class Article extends Eloquent { public function getNextArticle() { return Article::where('id', '>', $this->id)->take(1)->get(); } public function getPreviousArticle() { return Article::where('id', '<', $this->id)->take(1)->get(); } }
Je pense que cette méthode devrait être statique code> pour le faire fonctionner ou utiliser
étendue. Code>, exemple
Fonction statique publique GetNextARTICLE () CODE>
@Roll Si vous faites la méthode statique, vous perdez la possibilité d'utiliser $ ceci-> id code>
l'article est redondant, donc je l'ai supprimé. em> p>