В настоящее время я работаю над раскрывающимся списком в моей форме, и он возвращает значение индекса, например. 0,1,2, когда поле выбрано. Мне нужно, чтобы он вернул буквальный текст в поле, например. «Сервер один», «Сервер два». Я работаю с коллективными формами laravel. прилагается фрагмент кода для формы. Любая помощь приветствуется! Переменная $ status - это список всех серверов в базе данных.
@extends('layouts.app')
@section('content')
<h1></h1>
<h1>Edit Incident</h1>
{!! Form::open(['action' => ['IncidentsController@update', $incident->id], 'method' =>'POST']) !!}
<div class = "form-group">
{{Form::label('title','Title')}}
{{Form::text('title',$incident->title,['class' => 'form-control', 'placeholder' => 'Title'])}}
{{Form::label('body','Body')}}
{{Form::textarea('body',$incident->body,['id' => 'article-ckeditor','class' => 'form-control', 'placeholder' => 'Body text'])}}
{{Form::label('status','Server Status:')}}
<br>
{{Form::label('status','Resolved:')}}
{{Form::radio('status', 'Resolved' , false) }}
<br>
{{Form::label('status','Unresolved:')}}
{{Form::radio('status', 'Unresolved' , true) }}
<br>
{{ Form::label('server', 'Server:') }}
<br/>
{{Form::select('server', $statuses),['name' => "server",'class' => 'form-control']}}
</div>
{{Form::hidden('_method', 'PUT')}}
{{Form::submit('Submit', ['class' => 'btn btn-primary'])}}
{!! Form::close() !!}
dd($server)
@endsection
createIncident:
public function createIncident(){
$statuses = Status::pluck('server');
dd($statuses);
return view('createIncident', ['statuses' => $statuses]);
}
Если вы хотите продолжать использовать Form::, вам необходимо предоставить $statuses = ['server one' => 'server one'];
@Kyslik, должен ли я делать это для каждого сервера? Причина запроса в том, что со временем будет добавлено много серверов.
Вам нужно написать код, который генерирует массив.
$ statuses - это массив, я обновлю вопрос кодом из вызова метода, а также результатом die и dump
Вы хотите, чтобы это было только для этого поля выбора? также поясните, почему вам нужен буквальный текст, а не значение coz в базе данных, вы сохраняете числовые идентификаторы только после отправки данной формы, вы всегда можете просмотреть текстовое значение данного идентификатора из своей базы данных.
@Viney Мне это нужно только для этого поля выбора, мне также нужен буквально текст, потому что в одном из моих представлений у меня есть объекты «статус», а также «инциденты», и я сравниваю, если инцидент-> сервер === status-> server затем отобразит некоторую информацию.






закончилось тем, что я изменил способ отображения и хранения самой формы и использовал теги select, чтобы исправить это.
<select name = "server">
@foreach($statuses as $key => $value)
<option>{{$value}}</option>
@endforeach
</select>
<option> не имеет атрибута значения?
В этом нет необходимости, я не знаю точной причины, но я предполагаю, потому что, когда я сделал $ key => $ value, он автоматически сохраняет значение $ как атрибут value. как ни странно, если я добавил атрибут значения, он фактически сломал его.
Я не знаю о laravel, но я предполагаю, что он использует ключи массива в качестве значений для параметров? Возможно, решит эту проблему использование имени серверов в качестве ключей массива
$statuses?