Reputation: 49
How do I display by dropdown in view page?
User model:
public function registrationRoles(){
return [
3=>'Teacher',
4=>'Student'
];
}
My view page
<select class="select" name="role_id" id="all-categories">
<option value="">Select One</option>
<option value="">Teacher</option>
<option value="">Student</option>
</select>
RegisterController
public function postRegister(Request $request)
{
$this->validate($request, [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users',
'phone' => 'required|numeric',
'password' => 'required|min:6|confirmed'
]);
$data = new User;
$data->first_name = $request->first_name;
$data->last_name = $request->last_name;
$data->email = $request->email;
$data->phone = $request->phone;
$data->password = bcrypt($request->password);
// $data->role_id = 0;
$data->save();
Session::flash('success', 'Waiting for admin approval');
return redirect('/register');
}
..............................................................................................................................................................
Upvotes: 0
Views: 652
Reputation: 34
If you are using blade:-
You can find the necessary readings here https://laravel.com/docs/4.2/html#drop-down-lists
{!! Form::select('role_id', <here you have to place returned value from registrationRoles>) !!}
Upvotes: 1
Reputation: 1848
You could start by hardcoding them in the html
<select class="select" name="role_id" id="all-categories">
<option value="">Select One</option>
<option value="0">Teacher</option>
<option value="1">Student</option>
</select>
In your controller
public function postRegister(Request $request)
{
$this->validate($request, [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users',
'phone' => 'required|numeric',
'password' => 'required|min:6|confirmed'
]);
$data = new User;
$data->first_name = $request->first_name;
$data->last_name = $request->last_name;
$data->email = $request->email;
$data->phone = $request->phone;
$data->password = bcrypt($request->password);
$data->role_id = $request->role_id;
$data->save();
Session::flash('success', 'Waiting for admin approval');
return redirect('/register');
}
Or you could populate the dropdown with the roles if your return the roles in the view like
$roles = Roles::all();
return view('yourView', compact('roles));
In your blade
<select class="select" name="role_id" id="all-categories">
@foreach($roles as $role)
<option value="{{ $role->id }}">{{ $role->name }}</option>
@endforeach
</select>
Upvotes: 0