【发布时间】:2014-06-28 23:25:34
【问题描述】:
我的 Laravel 应用中有一个搜索表单,用于搜索属性列表。我的属性表已经有一个模型,并且通过一对多的关系连接到另一个称为详细信息的模型/表,其中包含某个属性是否有花园、车库等内容。在进行索引或显示内容时,这工作正常 - 我可以使用 $property->details 获取属性的详细信息。
搜索表单有一个字段,用户可以在其中搜索此类详细信息,这就是我苦苦挣扎的地方。我不仅需要找到详细信息本身,我还需要首先查看输入中存在的任何内容是否与详细信息表中的任何内容匹配,然后查看外键(称为 prop_id)是否与我的任何属性 id 匹配,然后包括那些结果中的属性。比如:
$query = Property::where('archived',0);
$query->details->where('text',$keyword);
$results = $query->get();
这不起作用的原因是因为 details 不是 $query 的属性,但我不确定使用什么作为替代方法,因为再次调用 Property::where() 肯定会重置整个查询。我将它全部存储在 $query 变量中,因为我的表单中的所有字段都是可选的,所以我只基于具有值的输入来构建查询。
这里有点难过,所以如果有人已经解决了这样的问题,我们将不胜感激。干杯!
【问题讨论】:
标签: php dynamic properties laravel eloquent