У меня есть таблица Организации, которые имеют следующие атрибуты
id
name
acronym
И переформатируйте название организации, соединив атрибуты имени и аббревиатуры в модели организации с помощью Accessor.
public function getOrganizationNameAttribute()
{
if($this->acronym != null)
{
return $this->name. ' ('.$this->acronym.') ';
}
else{
return $this->name;
}
}
Созданная форма, в которой пользователь должен выбрать организацию при наборе текста с помощью списка данных.
<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>
Когда пользователь выбирает конкретную организацию, система будет искать имя организации и получать ее уникальный идентификатор, если он не существует, система создаст новое значение и вернет идентификатор.
Пример имеет значение в организационной таблице
id:1
name:United Republic of Tanzania
acronym: URT
Затем сформируйте возврат имени организации как
United Republic of Tanzania (URT)
Вот моя проблема:
когда пользователь выбирает Объединенная Республика Танзания (URT) и отправляет форму, я ожидаю, что система вернет ID 1, но вместо этого вернет ноль. Как мне это решить?
Organization::where('name','LIKE','%'.$value.'%')->get();
, где значение — название организации - person antweny   schedule 16.04.2020$value
?? Он пустой или нет? - person A.A Noman   schedule 16.04.2020public function search($value) { if(!is_null($value)){ $data= Organization::where('name','LIKE','%'.$value.'%')->get(); dd($data); } }
- person antweny   schedule 16.04.2020post
? Вы должны использовать$request->value
- person A.A Noman   schedule 16.04.2020static function search($value) { if(!is_null($value)){ $data= self::where('name','LIKE','%'.$value.'%')->get(); dd($data); } }
, я вызываю ее из контроллераOrganization::search($request->value);
, когда я умираю, дамп$valeu
в функции модели отображает представленное значение, которое является Объединенной Республикой Танзания (URT), но когда я ищу его, возвращаю ноль, но если я ищу Объединенная Республика Танзания без (URT), возвращаю ID 1 - person antweny   schedule 16.04.2020