如何在连接 Laravel 中的两个属性后将值搜索到数据库中

How to search value into a database after concatenate two attributes in Laravel

我有一个 table 个具有以下属性的组织

id
name
acronym

并通过使用访问器连接组织模型中的名称和首字母缩略词属性来重新格式化组织名称

    public function getOrganizationNameAttribute()
    {
        if($this->acronym != null)
        {
            return $this->name. ' ('.$this->acronym.') ';
        }
        else{
            return $this->name;
        }
    }

创建的表单,用户必须select使用数据列表

组织输入
<label class="col-form-label">Organization <span class="star">{{$star ?? ''}}</span></label>
<input list="organizations" type="text" name="organization" class="form-control @error('organization_id') is-invalid @enderror" value="{{old('organization',$old ?? '')}}" placeholder="Ex. TGNP Mtandao, Vodacom" {{$req ?? ''}}/>
<datalist id="organizations">
    @foreach($organizations as $organization)
        <option value="{{$organization->organization_name}}"/>
    @endforeach
</datalist>

当用户 select 特定组织时,系统将搜索 organization_name 并获取其唯一 ID,如果不存在,系统将创建新值和 return ID

示例在组织中具有价值 table

id:1 
name:United Republic of Tanzania
acronym: URT

然后形成 return 组织名称为

United Republic of Tanzania (URT)

这是我的问题:

当用户 select 坦桑尼亚联合共和国 (URT) 并提交表格时,我希望系统 return ID 1 但 return 为空。我该如何解决?

在你的 html 你应该使用

首先将这些 link 添加到您的脑海中

<link href="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/select2.min.js"></script>

然后使用这个 select

<select name="organizations" id="myorgselect" class="form-control" multiple="multiple">
    @foreach($organizations as $organization)
         <option value="{{$organization->organization_id}}">
              {{$organization->organization_name}}
         </option>
    @endforeach
</select>

并将其添加到您的 javascrict

$("#myorgselect").select2({
tags: true
})

请参阅下面的 link 以了解使用标记

https://select2.org/tagging