使用变量构建预加载查询

building eager loading query with a variable

目前正在构建 API。使用流明和分形。分形的一个很酷的事情是能够通过查询字符串传递包含 ?foo=bar,mar,par

但现在在构建我的查询时,我想利用 Eloquents 预加载。所以理想情况下,如果使用上面的示例,此查询将是:

->with(['bar','mar','par'])

但是我在摸索如何从我的查询字符串中获取构建该查询。 显然,我正在通过一个验证器来传递它,以确保传递的任何东西都是合法的,所以如果有人通过了 'par123',那将会失败,因为我没有那个 table。

我不能通过以下内容:

$example = 'bar','mar','par';
->with([$example]);

关于如何在不手动检查每个传递的参数并为每个场景构建唯一查询的情况下构建该查询的任何想法...

免责声明:我从未使用过分形,但此解决方案适用于 Lumen。

$params = $request->input('foo'); // will give you 'bar,mar,par'

现在您需要将此字符串拆分为一个字符串数组,以便您的各种模型被预先加载

$paramArray = explode(',', $params); // ['bar', 'mar', 'par']

$results = Model::find('foo')->with($paramArray)->get();