public function postCreate(Request $request) { if ($request->get('workoutCreateExercise')) { // User clicked on "Create Exercise" button on workout form session(['workoutRequest' => $request->request->all()]); return view('workouts.edit_exercise'); } else { // User posted a created exercise $this->validate($request, ['exerciseName' => 'required|min:1', 'exerciseDescription' => 'required|min:1']); $exercise = new \App\Exercise(); $exercise->user_id = \Auth::User()->id; $exercise->name = $request->get('exerciseName'); $exercise->description = $request->get('exerciseDescription'); $exercise->save(); if (session('workoutRequest')) { $workout = session('workoutRequest'); $workout['exerciseID' . $workout['workoutCreateExercise']] = $exercise->id; session(['workoutRequest' => $workout]); return redirect('/user/workouts/create'); } else { return redirect('/user/workouts/exercises'); } } }
<?php /* |-------------------------------------------------------------------------- | Application Routes |-------------------------------------------------------------------------- | | Here is where you can register all of the routes for an application. | It's a breeze. Simply tell Laravel the URIs it should respond to | and give it the controller to call when that URI is requested. | */ Route::get('/', ['as' => 'home', function () { return view('welcome'); }]); Route::model('users', 'User'); Route::get('/login', ['as' => 'login', 'uses' => 'HomeController@showLogin']); Route::post('/login', ['as' => 'post.login', 'uses' => 'HomeController@doLogin']); Route::get('/register', ['as' => 'register', 'uses' => 'HomeController@showLogin']); Route::get('/logout', ['as' => 'logout', 'uses' => 'HomeController@doLogout']); Route::group(['middleware' => 'auth'], function () { get('/profile/{user}', ['as' => 'profile', 'uses' => 'ProfileController@index']); Route::model('exercises', 'Exercise'); Route::resource('exercises', 'ExercisesController'); Route::bind('exercises', function ($value, $route) { return App\Exercise::whereSlug($value)->first(); }); }); Route::get('/exercises', ['as' => 'exercises.index', 'uses' => 'ExercisesController@index']); Route::get('/exercises-from/{user}', ['as' => 'exercises.allFromUser', 'uses' => 'ExercisesController@allFromUser']);