题
我正在尝试在Laravel中建立一个self join。我想比较同一个表中的2列。
当我写这个在我的控制器:
$char_name_obj = User::find($user->id)->characters()->where('lord_id', '=', 'id')->get();
lord_id是一列,id是同一表中名为characters的另一列。这没有任何回报。我确信我需要做一个自我加入才能实现这一点。
人物模型:
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是Laravel3函数;所以如果你使用的是Laravel4,你需要使用 哈松
您可以使用whereRaw比较列:
User::find($user->id)->characters()->whereRaw('lord_id = id')->get();
不隶属于 StackOverflow