Laravel-通过动态字段过滤集合

时间:2019-07-18 11:33:47

标签: laravel laravel-5 eloquent

该模型有3个字段,它们是模型的属性,第4个字段是动态字段,称为“ fullTitle”

react-router
[
    {
    "id": 1,
    "hours": 2000,
    "car_id": 3,
    "fullTitle": "Test",
    }
}

我想做的是用fullTitle拾取元素,但是不起作用

2 个答案:

答案 0 :(得分:0)

$collection = VenderModel::get();

$collection->filter(function($item) use($title) {
    return preg_match('/.*'.$title.'.*/', $item->fullTitle) !== false;
});

return response()->json($collection, 200);

我认为这应该解决它。您不能对表中实际上不是该字段的字段使用查询,但是应该可以将其过滤为一个集合

答案 1 :(得分:0)

您不能要求数据库搜索表中实际上不存在的内容。

仅当您要求派生属性时才调用自定义属性。它们不能在查询中使用。

或者,您可以获取内存中的所有行,然后使用PHP对其进行过滤,但这不是一个好方法。

您还可以考虑将特定属性的翻译存储在相关表中,然后按关系在数据库中搜索。