Outils pour utilisateurs

Outils du site


devweb:laravel:start (lu 23678 fois)

Ceci est une ancienne révision du document !


Laravel

Installation

La dernière version 4.2 bug sous chrome et je n’ai pas trouvé de solution pour que ça marche, il faut donc forcer l’installation de la version 4.1 avec la commande

composer.phar create-project laravel/laravel=4.1.* nom-du-projet --prefer-dist

Convention de nommage

ATTENTION au pluriel et singulier !!!

Pour que tout se passe bien, nommé vos tables au pluriel, vos modèles au singulier, votre id doit s’appeler id…

Bref, voici un schéma

Pour stocker des articles

Table: articles
Champ: id, user_id, titre, contenu...

Commentaires des articles

Table: Commentaires
Champ: id, article_id, user_id, contenu...

Models et relation

Un article peut contenir plusieurs commentaires, nous allons définir la relation un-vers-plusieurs et regarder comment récupérer les données qu’il nous faut.

<?php
/**
* Article
*/
class Article extends Eloquent{  // Nom de la class au singulier
        // Automatiquement la table articles sera lié
 
	public function commentaires(){
		return $this->hasMany('Commentaire'); // le champ article_id sera utilisé par défaut
                // sinon spécifié le champ de la table commentaire qui fait le lien
                // ...hasMany('Commentaire','id_articles')
 
	}
 
}
<?php
/**
* Commentaire
*/
class Commentaire extends Eloquent{  // Nom de la class au singulier
        // Automatiquement la table commentaires sera lié
 
	public function article(){
		return $this->belongsTo('Article'); // le champ article_id sera utilisé par défaut
                // sinon spécifié le champ de la table commentaire qui fait le lien
                // ...belongsTo('Commentaire','id_articles')
 
	}
 
}

Maintenant nous voulons afficher les 10 derniers commentaires en spécifiant le titre de l’article.

// On récupère les 10 derniers éléments les plus récents de la table commentaires
$lastCommentaires = Commentaire::orderBy('created_at','desc')->take(10)->get();
 
// On boucle sur les enregistrements
foreach ($lastCommentaires as $c) {
  echo 'Commentaire du '.$c->created_at." pour l'article ".$c->article()->first()->titre.'<br>';
  // ou en écriture simplifié
  echo 'Commentaire du '.$c->created_at." pour l'article ".$c->article->titre.'<br>';
}

Ajouter ses class ou fonctions

Ajoutez dans app/start/global.php

include app_path().'/monfichier.php';

Mettre en français strftime

Ajoutez dans app/start/global.php

setlocale(LC_ALL, 'fr_FR.UTF-8');

Intégrer le framework en dehors de public

// Intégration du framework
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/start.php';
devweb/laravel/start.1404117982.txt.gz · Dernière modification: 30-06-2014 10:46 de edmc73