Php 如何在self laravel Elotent上添加别名?拉威尔5.3

Php 如何在self laravel Elotent上添加别名?拉威尔5.3,php,laravel,laravel-5.3,laravel-eloquent,Php,Laravel,Laravel 5.3,Laravel Eloquent,我的查询如下: SELECT * FROM categories a JOIN categories b ON b.parent_id = a.id JOIN products c ON c.category_id = b.id WHERE a.id = 1 self::join('categories b', 'b.parent_id', '=', 'a.id') ->join('products c', 'c.category_id', '=', 'b.id') -

我的查询如下:

SELECT * 
FROM categories a
JOIN categories b ON b.parent_id = a.id
JOIN products c ON c.category_id = b.id
WHERE a.id = 1
self::join('categories b', 'b.parent_id', '=', 'a.id')
    ->join('products c', 'c.category_id', '=', 'b.id')
    ->findWhere(['a.id','=',$id]);
我想把它改成laravel Elotent

在模型类别中,我尝试如下:

SELECT * 
FROM categories a
JOIN categories b ON b.parent_id = a.id
JOIN products c ON c.category_id = b.id
WHERE a.id = 1
self::join('categories b', 'b.parent_id', '=', 'a.id')
    ->join('products c', 'c.category_id', '=', 'b.id')
    ->findWhere(['a.id','=',$id]);
将别名添加到
self

我怎么做

注:


我想使用
self
。不是其他人,因为你要在模型里做。我认为您需要使用
$this
而不是
self
。就像您在创建表关系时所做的那样:

return $this->hasMany('Blabla');

因为你要在模特身上做。我认为您需要使用
$this
而不是
self
。就像您在创建表关系时所做的那样:

return $this->hasMany('Blabla');

@影子:这篇文章真的提到了自己的别名或其他什么吗?@Shadow,这似乎不是重复的。我的情况不同。你应该看看我的案子slowly@RavinderReddy好吧,你和OP都应该慢慢读这篇重复的文章。它描述了如何通过建立与自身的关系在laravel中创建自联接。这也是你在这里需要做的。@Shadow:这篇文章真的提到了alias for self或其他什么吗?@Shadow,这似乎不是重复的。我的情况不同。你应该看看我的案子slowly@RavinderReddy好吧,你和OP都应该慢慢读这篇重复的文章。它描述了如何通过建立与自身的关系在laravel中创建自联接。这也是你在这里需要做的。