首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从select字段获取值并与数据库进行比较

从select字段获取值并与数据库进行比较
EN

Stack Overflow用户
提问于 2019-03-25 14:16:04
回答 1查看 63关注 0票数 1

我需要什么:

使用以下DB列clay_plan_type

代码语言:javascript
复制
+----+------------------+
| id | clay_plan_type   |
+----+------------------+
|  5 | Single Shooter   |
|  6 | Lunch Sponsor    |
|  7 | Beverage Sponsor |
+----+------------------+

如果选择字段的值与clay_plan_type中的值匹配,则希望禁用表单中的选择选项

视图示例:

代码语言:javascript
复制
@if ($sponsortype === "Beverage Sponsor")
<option value="" disabled>Beverage Sponsor: SOLD OUT</option>
@else
<option value="Beverage Sponsor">Beverage Sponsor: $250</option>
@endif
etc...

控制器示例:

代码语言:javascript
复制
$sponsortype = DB::table('clay_shoots')->select('clay_plan_type')->get();
return view('clayshoot.sponsorform',compact('sponsortype'));

当我dd($sponsortype);时,我得到以下信息:

代码语言:javascript
复制
Collection {#855 ▼
  #items: array:3 [▼
    0 => {#801 ▼
      +"clay_plan_type": "Single Shooter"
    }
    1 => {#802 ▼
      +"clay_plan_type": "Lunch Sponsor"
    }
    2 => {#803 ▼
      +"clay_plan_type": "Beverage Sponsor"
    }
  ]
}

在视图中运行if statement时没有出现错误,但没有得到正确的结果。它的作用是‘is语句不存在。

因此,我尝试添加$sponsortype->clay_plan_type并得到错误:

属性clay_plan_type不存在于此集合实例上。

如果我在一个foreach loop中运行,它可以在视图中工作,但是我在select字段中得到了多个相同项的重复。(见下图)

代码语言:javascript
复制
@foreach($sponsortype as $st)
  @if ($st->clay_plan_type == "Beverage Sponsor" )
    YUP
  @else
    NOPE
  @endif
@endforeach
// OUTPUT: NOPE NOPE YUP ("Beverage Sponsor" is the last record in the table)

希望我能用你理解的方式来解释这件事。如果你需要更多的信息,请告诉我。任何帮助,以了解这一点,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 14:51:49

您可以使用contains集合方法并传递一个键/值对。

来自文档

您还可以将一个键/值对传递给contains方法,该方法将确定给定对是否存在于集合中:

代码语言:javascript
复制
$collection = collect([
    ['product' => 'Desk', 'price' => 200],
    ['product' => 'Chair', 'price' => 100],
]);

$collection->contains('product', 'Bookcase');

// false

就你而言:

代码语言:javascript
复制
@if ($sponsortype->contains("clay_plan_type", "Beverage Sponsor"))
    <option value="" disabled>Beverage Sponsor: SOLD OUT</option>
@else
    <option value="Beverage Sponsor">Beverage Sponsor: $250</option>
@endif
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55339860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档