所以我有一个名为paint的表,其数据如下
id name allow_on
------------------------------------------
1 Avian Wall|Roof|Wood
2 Avitex Wall|Roof|Iron
3 Nippon Floor|Iron
4 Some Plastic|Cloth|other
如何基于allow_on
列获取字段,例如“我想要可以在墙上使用的颜料”,到目前为止,我的代码看起来像这样
$paints = Paint::get();
foreach($paints as $paint)
{
$exp = explode("|", $paint->allow_on);
foreach($exp as $pnt)
{
if(in_array($request->paint_name,$pnt))
{
var_dump($pnt)
}
}
}
我正在使用Laravel 5.4但我无法使其工作,任何解决方案?提前谢谢。
答案 0 :(得分:1)
haystack应该是一个数组,即示例中的$exp
数组
$paints = Paint::get();
foreach($paints as $paint)
{
$exp = explode("|", $paint->allow_on);
if(in_array($request->paint_name,$exp)) {
// yes paint_name is in the array
}
}
答案 1 :(得分:1)
$want = 'Wall';
$allowed = Paint::where('allow_on', 'like', '%'.$want.'%')->get();
foreach ($allowed as $allowedPaint) {
echo $allowedPaint->name;
}
上面的内容将为您提供可在墙上使用的所有颜料。如果只需要检索绘图名称,可以使用:
$allowed = Paint::where('allow_on', 'like', '%'.$want.'%')->pluck('name');
var_dump($allowed);