2014-04-17 3 views
1

Je le tableau suivantLaravel 4 - Choisissez des modèles connexes

Schema::create('jokes_categories', function(Blueprint $table) { 
    $table->increments('id'); 
    $table->string('name'); 
    $table->string('is_active'); 
    $table->timestamps(); 
}); 

Schema::create('jokes', function(Blueprint $table) { 
    $table->increments('id'); 
    $table->string('content', 200)->unique();; 
    $table->enum('is_active', array('Y', 'N')); 
    $table->integer('category_id')->unsigned(); 
    $table->foreign('category_id')->references('id')->on('jokes_categories'); 
    $table->timestamps(); 
}); 

Dans le tableau des blagues category_id est une clé étrangère et il a un à plusieurs avec jokes_categories

Dans le modèle Je donne les résultats suivants:

class Joke extends \Eloquent { 

    public static $rules = array(); 

    // Don't forget to fill this array 
    protected $fillable = array(); 

    public function JokesCategory(){ 
     return $this->belongsTo('JokesCategory'); 
    } 
} 

Dans le contrôleur, je donne les résultats suivants:

$jokes = Joke::all(); 

Mais il ne passe pas par joke_categories. name (J'avais l'impression que la définition du modèle aidera directement à tirer les modèles connexes)

Quelle pourrait être la solution?

Répondre

2

Votre requête est juste sur la table de blagues.

Vous pouvez télécharger les catégories par ex.

$jokes = Joke::with('JokesCategory')->get(); 

Voir docs: http://laravel.com/docs/eloquent#eager-loading

+0

merci cela a fonctionné, mais j'ai fait petit tweak sur le modèle – sumit

0

La convention est en fait cas au lieu de chameau cas pascals, sinon Laravel ne semble pas charger automatiquement les relations. J'ai fait la même erreur et je n'ai pas compris pourquoi mes relations ne se chargeaient pas automatiquement.

public function jokesCategory() 
Questions connexes