문제

나는 Laravel에서 자기 가입을 구축하려고 노력하고 있습니다.나는 동일한 표에서 2 개의 열을 비교하고자합니다.

내 컨트롤러 에이 작업을 쓸 때 :

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

lord_id는 하나의 열이고, 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');
    }
}
.

마지막 함수를 사용하는 방법을 알지 못합니다.

도움이 되었습니까?

해결책

has_one은 Laravel 3 기능입니다.따라서 Laravel 4를 사용하는 경우 Asone

를 사용해야합니다.

WHERAW를 사용하여 열을 비교할 수 있습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top