【问题标题】:Laravel WhereNotIn only one numberLaravel WhereNotIn 只有一个数字
【发布时间】:2017-05-16 14:30:05
【问题描述】:

代码如下:

$all = "32,34,24,28,31";
 $show_app = DB::table('apartments')
->whereNotIn('id', [$all])
->get();

我不知道为什么变量 $all 不起作用。 何时列出仅隐藏第一个公寓“32”。无论如何,休息公寓清单。但是,如果我复制 whereNotIn 中的所有数字,那么它正在工作??? 我需要这个变量@all! 我的表中有所有变量。我尝试使用 ->toSql() 并只显示一个 "?" 而不是五个 "?, ?, ?, ?, ?"

【问题讨论】:

  • $all = [32,34,24,28,31];->whereNotIn('id', $all)

标签: mysql laravel


【解决方案1】:

我不是 laravel 用户,但是在你的 all 变量中,为什么不直接分配数组而不是保存为字符串呢?

示例: 而不是:

$all = "32,34,24,28,31";

为什么不呢?

$all = [32,34,24,28,31]; 

然后像这样使用 $all 变量:。

 $show_app =    DB::table('apartments') ->whereNotIn('id', $all) ->get();

【讨论】:

  • 它正在工作,但是当我使用来自查询 $result=""; 的数据时foreach($prikaz_bookinga as $prikaz_booking) : $result.=$prikaz_booking->id.','; endforeach ; $notIn=rtrim($result, ','); $all="[".$notIn."]";回声$所有;显示:[32,34,24,28,31,32] 我需要什么,但是当我在 ->whereNotIn('id', $all) 中使用时,在 Builder.php 第 775 行中显示错误 ErrorException:为 foreach 提供的参数无效()
【解决方案2】:

我发现了我的问题: 我必须使用爆炸

$result="";
foreach($prikaz_bookinga as $prikaz_booking) :  
$result.=$prikaz_booking->id.','; 
endforeach ;
$all=rtrim($result, ',');

然后在查询中添加这个。

 ->whereNotIn('id', explode(',', $all))

现在我去喝啤酒。在这8天工作。

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 2020-05-02
    • 2016-10-26
    • 1970-01-01
    • 2016-10-28
    • 2019-03-14
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    相关资源
    最近更新 更多