Раскрывающийся список года в Laravel не отображается - PullRequest
0 голосов
/ 18 июня 2019

Я хочу создать выпадающий список, который отображает годы, и вот, что я сделал. Я создал метод в моем контроллере ниже.

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Log;

class RUMSModel extends Model
{
    protected $primaryKey = 'id';
    protected $fillable = [];
    protected $dateFields = [];
    protected $dropdownFields = [];

    public $module_dir = '';
    public $module = '';
    public $importFields = [];

    public static $months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

    public function selectYear($name, $startYear, $endYear, $selected = null, $options = array())
    {
        $years = range($startYear, $endYear);
        $years = array_combine($years, $years); // [2013 => 2013]

        return $this->select($name, $years, $selected, $options);
    }
?>

Используйте его для отображения в шаблоне Blade:

<div class="col-lg-6">
  <div class="form-group">
     <label for="validation-latest_estimate_year"><b>Latest Estimate Year:</b></label>
      <select id="validation-latest_estimate_year" class="form-control" name="latest_estimate_year">
      <option value="">-Select Year-</option>
         @foreach($model->selectYear('year') as $year)
           <option value="{{$year}}" {{$year == $model->latest_estimate_year ? 'selected': ''}}>{{$year}}</option>
         @endforeach
      </select>
   </div>
</div>

Однако в раскрывающемся списке не отображаются годы. Я пытаюсь понять, почему, но у меня закончились идеи. Любое руководство от экспертов поможет.

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Здравствуйте, ребята, спасибо, что нашли время ответить на этот пост.Я нашел способ заставить это работать, но я не знаю, является ли это самым эффективным способом сделать это.

вот что я сделал, чтобы заставить его работать:

<div class="col-lg-6">
    <div class="form-group">
       <label for="validation-latest_estimate_year"><b>Latest Estimate Year:</b></label>
       <select id="validation-latest_estimate_year" class="form-control"
        name="latest_estimate_year">
       <option value="">{{$model->latest_estimate_year}}</option>
         @for ($year = date('Y') + 2; $year < date('Y') + 100; $year++)
            <option value="{{$year}}" {{$year == $model->latest_estimate_year ? 'selected': ''}}>{{$year}}</option>
         @endfor
       </select>
</div>

0 голосов
/ 18 июня 2019

Почему бы не использовать selectYear() из пакета laravelcollective / html ?

Установка:

composer require laravelcollective/html

Просмотр / Blade:

{!! Form::selectYear('year', 1900, 2019) !!}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...