Laravel Eloquent ORM在哪里和哪里有foreach

Gab*_*bor 0 php

我想做下面的工作,这可能是不好的做法,我对Laravel来说很新,所以请让我知道!

我有一个名为的模型Files,它们Keywords通过数据透视表链接.

我正在运行以下代码,但我得到Undefined variable: keyword_id了错误.

$keyword_ids = array(148, 4);
$files    = new Files;

foreach($keyword_ids as $keyword_id)
{
    $files = $files->whereHas('keywords', function($query)
    {
        $query->where('id', '=', $keyword_id);
    });
}
Run Code Online (Sandbox Code Playgroud)

非常感谢 !

Web*_*ice 7

您需要使用use关键字在闭包内访问变量.

foreach($keyword_ids as $keyword_id)
{
    $files = $files->whereHas('keywords', function($query) use ($keyword_id)
    {
        $query->where('id', '=', $keyword_id);
    });
}
Run Code Online (Sandbox Code Playgroud)