我有一个关于如何查询'checkboxWizard'BLOB字段的问题。在tl_member中添加了这样的字段。这工作得很好。我可以为每个成员添加“ 0到N”选择。我们将此字段称为“ myBlob”。
现在的问题是如何用Contao方式查询“ myBlob”?假设我要选择所有邮政编码为“ 12120”且ID为“ myBlob”的成员“ 2”。不仅是“ 2”,而且至少是这个。
$arrColumn[] = "tl_member.postal=?";
$arrValues[] = 12120;
$arrColumn[] = "tl_member.myBlob=?"; <- how to say “contains in the blob” here?
$arrValues[] = 2;
self::findBy($arrColumn, $arrValues)
最佳答案
做到这一点的唯一方法(当使用默认的Contao方法进行这种关系时)是创建如下查询:
… WHERE myBlob LIKE '%"2"%'
因此,在您的情况下,可能是:
$arrColumn[] = "tl_member.myBlob LIKE ?";
$arrValues[] = '%"2"%';
但是,这当然很麻烦,可能无法在所有情况下都起作用。
可能更好的方法是使用codefog/contao-haste及其“多对多”助手:https://github.com/codefog/contao-haste/blob/master/docs/Model/index.md
这样,您将拥有一个包含引用的单独表。