Вопрос

Я пытаюсь построить я вступление в Laravel.Я хочу сравнить 2 столбца в одной таблице.

Когда я пишу это в моем контроллере:

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

lord_id - один столбец, идентификатор - это другой столбец в той же таблице с именованными символами.Это ничего не возвращается.Я уверен, что мне нужно сделать самостоятельно, чтобы иметь возможность достичь этого.

Модель символов:

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');
    }
}
.

Я не знаю, как использовать последнюю функцию LordCharID().

Это было полезно?

Решение

has_one - это функция laravel 3;Так что, если вы используете Laravel 4, вам нужно использовать Hasone

Вы можете использовать WhereRaw для сравнения столбцов:

User::find($user->id)->characters()->whereRaw('lord_id = id')->get();
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top