Laravel: whereIn 带变量

Laravel: whereIn with variable

我试图在变量 $sections 中收集属于发生在它们身上的部分的所有记录。但只有第 1 部分的那些人才会接我。有什么建议吗?

$sections = '1,2,3';

$data = News::where('active', '1')
        ->whereIn('section_id', [$sections])
        ->get();

如果我在查询中用 $sections 代替值,这有效,但如果我使用变量 $sections,它不起作用。

谢谢。

当您使用 whereIn() 时,您必须传递一个数组而不是字符串:

$sections = explode(',', '1,2,3');

您的 $sections 变量是一个字符串。您将该字符串传递给数组,而不是字符串中的每个单独数字。

例如:

$users = DB::table('users')
                ->whereIn('id', [1, 2, 3])
                ->get();