Laravel 4 数据透视表添加的查询为空

Laravel 4 数据透视表添加的查询为空,laravel-4,pivot-table,Laravel 4,Pivot Table,我正在使用Laravel4.1,并试图从数据透视表中检索计数信息。轴的名称是project_subject,它将项目和主题连接在一起。我在主题模型中使用以下内容: public function getUnassignedCount($projectId) { return Subject::project() ->wherePivot('project_id', $projectId) ->wherePivot('assigned', 0)

我正在使用Laravel4.1,并试图从数据透视表中检索计数信息。轴的名称是project_subject,它将项目和主题连接在一起。我在主题模型中使用以下内容:

public function getUnassignedCount($projectId)
{
    return Subject::project()
      ->wherePivot('project_id', $projectId)
      ->wherePivot('assigned', 0)
      ->count();
}
这将返回如下查询:

选择计数(*)作为
projects
内部联接
project\u subject
projects
id
project\u id
的聚合,其中
project\u subject
subject\u id
为空且
project\u subject
project\u-id
<1'
项目主题
已分配
=“0”

可以看出,会自动为
project\u subject
subject\u id
插入一个空值,这会导致查询不返回任何内容。看起来奇怪的是,拉威尔会自动添加一个我不要求的专栏


如何正确查询数据透视表以获得所需的计数?缺少创建ProjectSubject模型。

根据Laravel API,where语句中缺少运算符值

public BelongToMany wherePivot(字符串$column,字符串$operator=null,混合$value=null,字符串$boolean='和')


我使用了此处发布的自定义枢轴模型:

在我的问题中,我没有使用上述代码,而是像这样调用newPivot:

public function getUnassignedSubjectsCount($projectId)
{
    $pivot = Project::newPivot($this, $this->attributes, 'project_subject', true);
    return $pivot->where('project_id', 1)->where('assigned', 0)->count();
}

上述结果符合预期。

谢谢,但我已经按照您的建议尝试了不同的方法,但仍然不起作用。也就是说,它仍然在我不想包含的字段上添加了“isnull”。
public function getUnassignedSubjectsCount($projectId)
{
    $pivot = Project::newPivot($this, $this->attributes, 'project_subject', true);
    return $pivot->where('project_id', 1)->where('assigned', 0)->count();
}