首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何仅显示以前未选中的项的下拉列表。

如何仅显示以前未选中的项的下拉列表。
EN

Stack Overflow用户
提问于 2020-10-17 16:54:43
回答 1查看 55关注 0票数 0

我有两张桌子

property_id

  • property=>id,
  • tenant=>id,name,email,
  • propertyname,location

“租户”和“属性”表有一个与关系的表。

我的租户/create.blde.php有一个下拉列表,其中列出了数据库中所有可供出租的属性。

例如,如果在数据库中插入了以下属性A、B、C、D、E、F,则下拉列表将显示所有属性,包括已经使用的属性。如图所示

我希望它只显示属性不被占用。例如,如果在所有可用的属性中,A、B、C已经被分配给它,那么它应该只显示D、E、F的下拉列表。

我想我可以在控制器上做这件事,但不知道怎么做。

这是我的TenantsController创建函数

代码语言:javascript
运行
复制
public function create()
    {
        $property = Property::pluck('propertyname','id');

        return view('tenants.create',compact('property'));

    }

create.blade.php有以下代码来显示下拉列表

代码语言:javascript
运行
复制
<div class="form-group">

    {{Form::label('property name','Property Name')}}
    {{Form::text('propertyname','',['class'=>'form-control','placeholder'=>'Property Name'])}}
  
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-17 17:35:11

可能会有更多的解决方案,但现在我可以想到$collection->diff()在你的laravel应用程序中快速解决它。

代码语言:javascript
运行
复制
$properties = Property::all();   // write query to fit your needs
$taken      = Property::taken(); // write query to retrieve the unavailable properties

$diff    = $properties->diff($taken);
$options = $diff->pluck('name', 'id')->toArray();

现在,将$options传递给您的刀片视图&循环通过它生成<option>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64404993

复制
相关文章

相似问题

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