Laravel 5 - 3表关系获取所有数据

时间:2016-07-14 12:48:06

标签: php laravel eloquent

我有3张桌子:

用户 -

id
name

项目

id 
projectName

项目用户

id
userId
ProjectId

我想要获取所有类似的数据:

newtable的

ProjectName
UserName

现在我的代码看起来像:

class Project extends Model
{
    public function user(){
        return $this->belongsToMany('App\User','Students','UserId','ProjeId');
    }
}

所以我的问题是,如何使用Eloquent获取我的数据并在控制器端管理数据?

thx任何帮助

2 个答案:

答案 0 :(得分:0)

如果你想要一张新表"使用您的名字,您可以使用纯旧的SQL。在Laravel中,您使用DB类。

$mydataset = DB::select("SELECT U.name as UserName, P.name as ProjektName FROM User AS U, Project AS P, Project-User AS PU WHERE PU.userId = U.id AND PU.ProjectId = P.id")

答案 1 :(得分:0)

您可以通过两个模型上的关系来实现,然后使用以下示例查询它们:

项目模型

public function user(){
    return $this->belongsToMany('App\User','project-user','user_id','project_id');
}

用户模型

public function project(){
    return $this->hasMany('App\Projects','project-user','user_id','project_id');
}

然后你可以像这样打电话给他们:

$user= User::find($user_id);
$user->project()->get()