diff --git a/app/Http/Controllers/OrdersController.php b/app/Http/Controllers/OrdersController.php new file mode 100644 index 0000000..0fc77fb --- /dev/null +++ b/app/Http/Controllers/OrdersController.php @@ -0,0 +1,96 @@ +only(['total_price', 'description']); + $currentUserId = auth()->id(); + + try { + $data['user_id'] = $currentUserId; + Order::create($data); + } catch (Exception $e) { + return back()->with('status', 'Create fail'); + } + + return redirect("users/$currentUserId")->with('status', 'Profile updated!'); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + // + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + // + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + // + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + // + } +} diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 45ee678..d346b06 100644 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -4,6 +4,7 @@ use Illuminate\Http\Request; use App\User; +use App\Http\Requests\UpdateUser; class UsersController extends Controller { @@ -61,7 +62,13 @@ public function show($id) */ public function edit($id) { - // + $user = User::find($id); + + if (!$user) { + return back(); + } + + return view('users.edit', ['user' => $user]); } /** @@ -71,9 +78,18 @@ public function edit($id) * @param int $id * @return \Illuminate\Http\Response */ - public function update(Request $request, $id) + public function update(UpdateUser $request, $id) { - // + $data = $request->only(['name', 'email']); + + try { + $user = User::find($id); + $user->update($data); + } catch (Exception $e) { + return back()->with('status', 'Update fail'); + } + + return redirect('users')->with('status', 'Profile updated!'); } /** diff --git a/app/Http/Requests/OrderCreateRequest.php b/app/Http/Requests/OrderCreateRequest.php new file mode 100644 index 0000000..dc2af96 --- /dev/null +++ b/app/Http/Requests/OrderCreateRequest.php @@ -0,0 +1,31 @@ + ['required', 'integer'], + 'description' => ['required'], + ]; + } +} diff --git a/app/Http/Requests/UpdateUser.php b/app/Http/Requests/UpdateUser.php new file mode 100644 index 0000000..39eb267 --- /dev/null +++ b/app/Http/Requests/UpdateUser.php @@ -0,0 +1,33 @@ +user; + + return [ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,' . $userId], + ]; + } +} diff --git a/app/Order.php b/app/Order.php new file mode 100644 index 0000000..6614d47 --- /dev/null +++ b/app/Order.php @@ -0,0 +1,17 @@ +hasMany('App\Order'); + } } diff --git a/database/migrations/2019_02_28_122635_create_orders_table.php b/database/migrations/2019_02_28_122635_create_orders_table.php new file mode 100644 index 0000000..3834d20 --- /dev/null +++ b/database/migrations/2019_02_28_122635_create_orders_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->integer('user_id'); + $table->integer('total_price'); + $table->text('description'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('orders'); + } +} diff --git a/resources/views/ducanh.blade.php b/resources/views/ducanh.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/orders/create.blade.php b/resources/views/orders/create.blade.php new file mode 100644 index 0000000..47b1c66 --- /dev/null +++ b/resources/views/orders/create.blade.php @@ -0,0 +1,55 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Create Order') }}
+ +
+
+ @csrf + +
+ + +
+ + + @if ($errors->has('description')) + + {{ $errors->first('description') }} + + @endif +
+
+ +
+ + +
+ + + @if ($errors->has('total_price')) + + {{ $errors->first('total_price') }} + + @endif +
+
+ +
+
+ +
+
+
+
+
+
+
+
+@endsection diff --git a/resources/views/test.blade.php b/resources/views/test.blade.php new file mode 100644 index 0000000..a4fda51 --- /dev/null +++ b/resources/views/test.blade.php @@ -0,0 +1 @@ +dasdffdsfsdfsd \ No newline at end of file diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php new file mode 100644 index 0000000..1972559 --- /dev/null +++ b/resources/views/users/edit.blade.php @@ -0,0 +1,56 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Edit') }}
+ +
+
+ @csrf + +
+ + +
+ + + @if ($errors->has('name')) + + {{ $errors->first('name') }} + + @endif +
+
+ +
+ + +
+ + + @if ($errors->has('email')) + + {{ $errors->first('email') }} + + @endif +
+
+ +
+
+ +
+
+
+
+
+
+
+
+@endsection + diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php index 6ad3ca2..4efb34c 100644 --- a/resources/views/users/index.blade.php +++ b/resources/views/users/index.blade.php @@ -5,6 +5,11 @@
+ @if (session('status')) +
+ {{ session('status') }} +
+ @endif
User List
@@ -26,7 +31,7 @@ {{ $user->email }} - Edit + Edit Delete diff --git a/resources/views/users/show.blade.php b/resources/views/users/show.blade.php new file mode 100644 index 0000000..236a49f --- /dev/null +++ b/resources/views/users/show.blade.php @@ -0,0 +1,59 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('User profile') }}
+ +
+
+
{{ __('Name') }}
+
{{ $user->name }}
+
+
+
{{ __('E-Mail Address') }}
+
{{ $user->email }}
+
+
+
+ +
+
+
+

{{ $user->name . __("'s orders" ) }}

+
+ + + + + + + + + + + + @foreach ($user->orders as $order) + + + + + + + @endforeach + +
#DescriptionTotal priceAction
+ {{ $order->id }} + + {{ $order->description }} + {{ $order->total_price }} + Edit + Delete +
+ Create order +
+
+
+@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index d1f69b9..f4bab98 100644 --- a/routes/web.php +++ b/routes/web.php @@ -19,8 +19,13 @@ Route::get('/home', 'HomeController@index')->name('home'); -Route::get('/users', 'UsersController@index')->name('users.index'); -Route::get('/users/{user}', 'UsersController@show')->name('users.show'); -Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy'); +Route::middleware('auth')->group(function () { + Route::get('/users', 'UsersController@index')->name('users.index'); + Route::get('/users/{user}', 'UsersController@show')->name('users.show'); + Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy'); + Route::get('/users/{user}/edit', 'UsersController@edit')->name('users.edit'); + Route::post('/users/{user}', 'UsersController@update')->name('users.update'); -// Route::resource('users', 'UsersController'); \ No newline at end of file + Route::post('/orders', 'OrdersController@store')->name('orders.store'); + Route::get('/orders/create', 'OrdersController@create')->name('orders.create'); +});