Я вступил в Лмарет
Вопрос
Я пытаюсь построить я вступление в 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();
. Не связан с StackOverflow