只保留特定的身份Laravel

时间:2018-05-04 16:15:01

标签: laravel eloquent

我有一张桌子Foo

id

1 
2 
3 
4 
5

我有一张桌子吧

foo_id = 1 test = 1
foo_id = 2 test = 0
foo_id = 4 test = 1
foo_id = 5 test = 1

我想从foo中检索id,其中bar test = 0或bar中不存在。

我有

$id = Foo::with('bar')->whereHas('bar', function ($q)
  {$q->where('test', '=', 0)
  ->orWhereNull(foo_id???????);})
->get();

我怎么写下来?

3 个答案:

答案 0 :(得分:0)

您位于正确的通道上,但whereHas找不到bar中不存在的任何内容。请尝试这种方法:

$id = Foo::with('bar')
    ->whereHas('bar', function ($q) {
        $q->where('test', '=', 0);
    }
    ->orWhereDoesntHave('bar')
    ->get();

现在,您正在寻找Foo bar test 0bar,或者int i = 0; pthread_create(..., ..., ..., (void *)&i);

答案 1 :(得分:0)

$id = Foo::with('bar')->whereHas('bar', function ($q)
  {
    $q->where('test', '=', 0)
      ->whereNotIn(
          'foo_id', DB::raw("SELECT foo_id FROM bar"), 'or'
      );
  })->get();

答案 2 :(得分:0)

此代码可根据您的需要完美运行。

for(i in names(df)[6:10]) {
    df[,i] <- ifelse(df[,i] == "0/0", df[[4]], df[,i])
 }
df
#     V1    V2 V3 V4 V5  V6 V7  V8  V9 V10
#1 chr1A 63248  .  A  G   A  A   A ./.   A
#2 chr1A 80950  .  A  C 1/1  A ./.   A   A
#3 chr1A 81080  .  C  G   C  C   C ./.   C
#4 chr1A 81084  .  C  T 0/1  C   C ./.   C