Добавить динамический выпадающий список при регистрации в Laravel 5.2

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

Я не знаю с чего начать.

я хочу разместить 2 выпадающих списка в регистрационной форме

мы получаем значение из таблицы

Первая «групповая» группа состоит из:
1. Администратор
2. Пользователи
3. Гость

второй «отдел» (отключен)
если первое раскрывающееся меню — «Администратор» или «Гость», то второе раскрывающееся меню отключите.
Но если мы выберем «Пользователи», то в раскрывающемся списке «Отдел» включите и получите данные из таблицы отдела.

2

Решение

На мой взгляд, лучший способ сделать это — создать контроллер и модель.

php artisan make:controller YOUR_CONTROLLER_NAME_HERE

php artisan make:model YOUR_MODEL_NAME_HERE

После этого все должно быть очень просто.

Еще одна приятная библиотека

"illuminate/html": "5.*"

Поместите это в ваш composer.json в разделе require {}.

Затем вам нужно добавить поставщиков услуг в config / app.php в разделе поставщиков, например:

Illuminate\Html\HtmlServiceProvider

И в качестве последней части введите эти две строки в config / app.php в разделе псевдонимов:

'Form'=> 'Illuminate\Html\FormFacade',
'HTML'=> 'Illuminate\Html\HtmlFacade'

Теперь включите вашу модель и просмотрите фасад в вашем контроллере сверху, как это

use App\MyModel;
use Illuminate\Support\Facades\View;

В вашем конструкторе вам нужно внедрить вашу модель в ваш контроллер следующим образом.

private $myModel;
__constructor(MyModel $myModelParameter) {
$this->myModel = $myModelParameter;
}

Теперь в вашем контроллере внутри вашей функции вызова (например, create ()) добавьте что-то вроде этого.

public function create() {
$myModelList = $this->myModel->lists('name', 'id');
return View::make('myController.create')->with(compact('myModelList'));
}

И вот, наконец, файл html / template. В /resources/views/myController/create.blade.php, например, добавить

    @extends('app')

@section('content')

{!! Form::open(['url' => 'myController/create', 'method' => 'POST']) !!}
@include('myController.partials.form', ['submitButtonText' => 'Create myController Item'])
{!! Form::close() !!}

@endsection

Теперь внутри вашей новой папки под названием / resources / view / myController / partials добавьте form.blade.php

<div class="form-group">
{!! Form::label('myModel_id', 'MyModel Selector :') !!}
{!! Form::select('myModel_id', $myModelList, null, array('id' => 'myModel_id', 'class' => 'form-control input-sm')) !!}
</div>

<div style="clear:both;"><br /></div>

<div class="form-actions">
<div class="form-group">
{!! Form::submit($submitButtonText, ['class' => 'btn btn-primary form-control']) !!}
</div>
</div>

Это может показаться большим количеством шагов, но это делает все действительно чистым, особенно когда ваш проект начинает расти. Это также будет работать для вашего edit.blade.php. Вы просто создаете файл edit.blade.php и включаете форму. Поскольку вы используете модели, он определит правильные настройки для модели и извлечет значения одинаково независимо. Конечно, вы можете делать более сложные вещи, но я рекомендую смотреть бесплатные стартовые видео на laracasts. Это также покажет вам такие вещи.

Если вы застряли, дайте мне знать, и мы можем расширить этот ответ.

2

Другие решения

Попробуй это:

Например, вы хотите динамический список стран в регистрационной форме.

В контроллере

class YourController extends Controller {

protected $countryArray;

public function __construct() {
$this->countryList = ['' => 'Select Country'] + Country::lists('name', 'id')->all();
}

public function create() {

$countryList = $this->countryList;
return view('frontend.registration', compact('countryList'));
}
}

В шаблоне

<select id="country_id" name="country_id" class="form-control">
<option value="">Select Country</option>
@foreach ($countryList as $key => $country)
<option value="{!! $country['id'] !!}"  !!}>{!! $country['name'] !!}</option>
@endforeach
</select>
0

По вопросам рекламы [email protected]