Sql Laravel查询生成器:其中pivot不在
Sql Laravel查询生成器:其中pivot不在,sql,laravel,pivot,Sql,Laravel,Pivot,其中提到了pivotin(在“通过中间表列筛选关系”下),但我找不到有关相反函数的任何信息 由于wherePivotIn已经存在,但没有wherePivotNOTIn,我编辑了这个文件:vendor/laravel/framework/src/illighte/Database/Eloquant/Relations/belongtomany.php 并增加了这个功能 public function wherePivotNotIn($column, $values, $boolean = 'and
其中提到了pivotin
(在“通过中间表列筛选关系”下),但我找不到有关相反函数的任何信息
由于wherePivotIn
已经存在,但没有wherePivotNOTIn
,我编辑了这个文件:vendor/laravel/framework/src/illighte/Database/Eloquant/Relations/belongtomany.php
并增加了这个功能
public function wherePivotNotIn($column, $values, $boolean = 'and', $not = false)
{
$this->pivotWhereIns[] = func_get_args();
return $this->whereNotIn($this->table.'.'.$column, $values, $boolean, $not);
}
现在,wherePivotNotIn
存在并正在工作。但我的问题是:
更新此文件安全吗?
在更新的情况下,我想我会丢失这个…永远不要编辑供应商目录中的内容。创建您自己的方法以满足您的需要,以防它不存在 在您的情况下,您可以定义 它看起来像:
class Task extends Model
{
public function scopeWherePivotNotIn($query)
{
/**/
}
}
$tasks = Task::wherePivotNotIn()->get();
是的,不要更新没有编号的供应商文件。相反,创建一个扩展
belongToMany
的类,并将您的实现放在其中。一旦文件更新,您将丢失所做的更改。经过一点修改后,我发现方法中的方法接受两个以上的参数
我们只需要像这样使用“wherePivotNotIn”
无需声明新类或使用范围 我应该在哪里创建这个新类,以及默认情况下如何使用它而不是旧类?在新版本中,值NotIn
只是一个真实的值,这意味着它可以是“true”或任何其他计算结果为true
的值,因此可以将其重写为<代码>->wherePivotIn($column,$value,'and',true)
->wherePivotIn($column,$value,'and','NotIn')