[英]How to get data from mysql database based on array
所以我有一個叫做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,但是我無法使其正常運行,有解決方案嗎? 提前致謝。
使用in_array()
時,您會混淆使用needle和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
}
}
$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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.