Образец переплета в регистрационной форме для Laravel 5.4

Я пытаюсь получить список данных из базы данных и показать его в виде раскрывающегося списка в форме регистрации. Но я получаю ошибку неопределенных переменных университетов.

Контроллер регистра

/**
* Create a new user instance after a valid registration.
*
* @param  array  $data
* @return User
*/
protected function create(array $data)
{
$universities = University::lists('id', 'university');
$sch_depts   = Department::lists('id', 'department');

return User::create([
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'university' => $data['university'],
'school_dept' => $data['school_dept'],
])
->with(compact('universities','sch_depts'));
}

register.blade.php

<div class="form-group{{ $errors->has('university') ? ' has-error' : '' }}">
<label for="university" class="col-md-4 control-label">University</label>

<div class="col-md-6">

{!! Form::select('university', $universities, null, array('id' => 'universitiy', 'class' => 'form-control')) !!}

@if ($errors->has('university'))
<span class="help-block">
<strong>{{ $errors->first('university') }}</strong>
</span>
@endif
</div>
</div>

Я получаю сообщение об ошибке университетов не определено.

0

Решение

Давайте предположим, что у вас есть контроллер с именем RegisterController, create метод должен возвращать только view и это соответствующие данные.

public function create()
{
$universities = University::lists('id', 'university');
$sch_depts   = Department::lists('id', 'department');

return view('register', compact('universities', 'sch_depts'));
}

и вы также должны иметь store метод:

public function store(\Illuminate\Http\Request $request)
{

// your validation goes here
// or just use form request validation
// docs: https://laravel.com/docs/5.4/validation#form-request-validation

User::create([
'firstname' => $request->get('firstname'),
'lastname' => $request->get('lastname'),
'email' => $request->get('email'),
'password' => bcrypt($request->get('password')),
'university' => $request->get('university'),
'school_dept' => $request->get('school_dept'),
]);

// login user here or redirect to success page

}

и ваш routes/web.php Файл должен содержать следующие маршруты:

Route::get('register', 'RegisterController@create');
Route::post('register', 'RegisterController@store');

Это действительно основы Laravel, пожалуйста читать документы.
Постскриптум Laravel идет с отличным Аутентификация система, которую вы можете переопределить в соответствии с вашими потребностями.

0

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

Других решений пока нет …

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