Poniżej kod:
web.php
Route::group(['prefix'=>'profile','middleware' => 'isVerified'],function(){ Route::get('/','BackendController@index')->name('profileHome'); Route::match(['GET','POST'],trans('routes.profile'),'BackendController@index')->name('profile'); }); Auth::routes(['verify' => true]);
BackendController.php
class BackendController extends Controller { public function __construct(BackendGateway $backendGateway, BackendRepositoryInterface $backendRepository) { $this->middleware( $this->setMiddleware() ); $this->bG = $backendGateway; $this->bR = $backendRepository; } public function index(Request $request) { if ($request->isMethod('post')) { /* to odwołuje się do Gateways/BackendGateway */ $this->bG->saveUserData($request); return redirect()->back()->with('success','Dane zostały zmienione.'); } return view('backend.index',['user'=>Auth::user()]); } }
BackendGateway.php
class BackendGateway { use \Illuminate\Foundation\Validation\ValidatesRequests; public function __construct(BackendRepositoryInterface $bR ) { $this->bR = $bR; } { return Validator::make($data, [ 'gender'=>"required", 'name'=>"required|string|min:3", 'surname'=>"required|string|min:3", 'address'=>"required|string|min:5", 'city'=>"required|string|min:5", 'postcode'=>"required|integer|min:5", 'country'=>"required|string|min:2" ]); } public function saveUserData($request) { $this->validatorSaveUserData($request->all())->validate(); return $this->bR->saveUserData($request); } }
BackendRepository.php
class BackendRepository implements BackendRepositoryInterface { public function saveUserData($request) { $user = User::find($request->user()->id); $user->gender = $request->input('gender'); $user->name = $request->input('name'); $user->surname = $request->input('surname'); $user->address = $request->input('address'); $user->city = $request->input('city'); $user->postcode = $request->input('postcode'); $user->country = $request->input('country'); $user->save(); return $user; } }
oraz index.blade
@if($errors->any()) <br> <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $message) @endforeach </ul> </div> @endif @if ($message = Session::get('success')) <div class="alert alert-success alert-block"> </div> @endif <form {{ $novalidate }} action="{{ route('profile') }}" method="POST"> <div class="col-sm-4 col-md-4"> <div class="form-group"> <input type="text" class="form-control" name="name" placeholder="Imię" id="imie" value="{{ $user->name }}" required> </div> </div> <div class="card-footer text-right"> </div> {{ csrf_field() }} </form> </form>