我正在使用laravel,我有一个带有'projects'的主表和一个带'users'的表,一个将两者作为多对多关系链接的中间表。
现在我想显示一个项目列表,但如果它们超过'projects.max_people'那么它们应该从这个列表中隐藏,我该如何在laravel中这样做?
在我做了Project :: get()之后问题就是我在视图中看到用户了吗?如何在条件中添加这个?
答案 0 :(得分:0)
您应该创建一个名为ProjectUser的新对象。在这个对象中应该包含一个' project_id'和' user_id'。
然后,您的项目模型将如下所示:
<?php
class Project extends \Eloquent
{
protected $table = 'projects';
public function projectUsers(){
$this->hasMany('ProjectUser', 'project_id');
}
}
用户类:
<?php
class Project extends \Eloquent
{
protected $table = 'projects';
public function projectUsers(){
$this->hasMany('ProjectUser', 'user_id');
}
}
ProjectUser类:
class ProjectUser extends \Eloquent
{
protected $table = 'project_users';
public function project(){
$this->belongsTo('Project'`enter code here`, 'project_id');
}
public function user(){
$this->belongsTo('User', 'user_id');
}
}
现在,您可以获得项目的用户:
$projects = Project::with('projectUsers.user')->get();
循环浏览这些对象时,您可以像这样访问用户:
@foreach($projects as $project)
@foreach($project->projectUsers as $projectUser)
{{ $projectUser->user->id }}
@endforeach
@endforeach