Question

Je suis en train de construire une auto rejoindre dans Laravel.Je souhaite comparer 2 colonnes d'une même table.

Quand j'écris dans mon controller:

$char_name_obj = User::find($user->id)->characters()->where('lord_id', '=', 'id')->get();

lord_id est une colonne id est l'autre colonne de la même table de personnages nommés.Ce ne retourne rien.Je suis sûr que j'ai besoin de faire un self rejoindre pour être en mesure d'atteindre cet objectif.

Modèle de personnage:

class Character extends Eloquent {

    protected $table = 'characters';

    protected $fillable = array('lord_id','char_name', 'char_dynasty', 'picture');

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

    public function Titles()
    {
        return $this->hasMany('Title');
    }

    public function LordCharID()
    {
        return $this->has_one('Character');
    }
}

Je ne sais pas comment utiliser la dernière fonction LordCharID().

Était-ce utile?

La solution

has_one est le Laravel 3 fonction;donc, si vous êtes à l'aide de Laravel 4, vous devez utiliser hasOne

Vous pouvez utiliser whereRaw de comparer les colonnes:

User::find($user->id)->characters()->whereRaw('lord_id = id')->get();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top