Skip to content

Commit c6493bd

Browse files
author
Febri Hidayan
committed
first commit
0 parents  commit c6493bd

File tree

93 files changed

+18060
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+18060
-0
lines changed

.editorconfig

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
indent_style = space
8+
indent_size = 4
9+
trim_trailing_whitespace = true
10+
11+
[*.md]
12+
trim_trailing_whitespace = false
13+
14+
[*.{yml,yaml}]
15+
indent_size = 2

.env.example

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
APP_NAME=Laravel
2+
APP_ENV=local
3+
APP_KEY=
4+
APP_DEBUG=true
5+
APP_URL=http://localhost
6+
7+
LOG_CHANNEL=stack
8+
LOG_LEVEL=debug
9+
10+
DB_CONNECTION=mysql
11+
DB_HOST=127.0.0.1
12+
DB_PORT=3306
13+
DB_DATABASE=tutorial_crud_laravel_inertiajs
14+
DB_USERNAME=root
15+
DB_PASSWORD=
16+
17+
BROADCAST_DRIVER=log
18+
CACHE_DRIVER=file
19+
QUEUE_CONNECTION=sync
20+
SESSION_DRIVER=file
21+
SESSION_LIFETIME=120
22+
23+
MEMCACHED_HOST=127.0.0.1
24+
25+
REDIS_HOST=127.0.0.1
26+
REDIS_PASSWORD=null
27+
REDIS_PORT=6379
28+
29+
MAIL_MAILER=smtp
30+
MAIL_HOST=mailhog
31+
MAIL_PORT=1025
32+
MAIL_USERNAME=null
33+
MAIL_PASSWORD=null
34+
MAIL_ENCRYPTION=null
35+
MAIL_FROM_ADDRESS=null
36+
MAIL_FROM_NAME="${APP_NAME}"
37+
38+
AWS_ACCESS_KEY_ID=
39+
AWS_SECRET_ACCESS_KEY=
40+
AWS_DEFAULT_REGION=us-east-1
41+
AWS_BUCKET=
42+
43+
PUSHER_APP_ID=
44+
PUSHER_APP_KEY=
45+
PUSHER_APP_SECRET=
46+
PUSHER_APP_CLUSTER=mt1
47+
48+
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
49+
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

.gitattributes

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
* text=auto
2+
*.css linguist-vendored
3+
*.scss linguist-vendored
4+
*.js linguist-vendored
5+
CHANGELOG.md export-ignore

.gitignore

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/node_modules
2+
/public/hot
3+
/public/storage
4+
/storage/*.key
5+
/vendor
6+
.env
7+
.env.backup
8+
.phpunit.result.cache
9+
docker-compose.override.yml
10+
Homestead.json
11+
Homestead.yaml
12+
npm-debug.log
13+
yarn-error.log

.styleci.yml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
php:
2+
preset: laravel
3+
disabled:
4+
- no_unused_imports
5+
finder:
6+
not-name:
7+
- index.php
8+
- server.php
9+
js:
10+
finder:
11+
not-name:
12+
- webpack.mix.js
13+
css: true

README.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Tutorial CRUD Laravel dan Inertia.js
2+
Membuat CRUD Laravel dan Inertia.js yang membuat Anda lebih mudah membangun aplikasi *Single Page Application*.
3+
4+
Ikuti kursus kelas ini di https://sekolahprogram.com/kelas/tutorial-crud-laravel-dan-inertiajs
5+
6+
>Ayo segera belajar tutorial kurus di [Sekolah Program](https://sekolahprogram.com) banyak sekali tutorial gratis yang sudah dibuat.
7+
8+
# Penulis
9+
- [Febri Hidayan](https://github.com/febrihidayan)
10+
11+
## Donasi Ke Penulis
12+
Berikan saya donasi untuk terus memberikan aplikasi open source yang bermanfaat.
13+
- [Paypal](https://paypal.me/febrihidayan)
14+
- [Dana](https://link.dana.id/qr/2d6by546)

app/Console/Kernel.php

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
3+
namespace App\Console;
4+
5+
use Illuminate\Console\Scheduling\Schedule;
6+
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
7+
8+
class Kernel extends ConsoleKernel
9+
{
10+
/**
11+
* The Artisan commands provided by your application.
12+
*
13+
* @var array
14+
*/
15+
protected $commands = [
16+
//
17+
];
18+
19+
/**
20+
* Define the application's command schedule.
21+
*
22+
* @param \Illuminate\Console\Scheduling\Schedule $schedule
23+
* @return void
24+
*/
25+
protected function schedule(Schedule $schedule)
26+
{
27+
// $schedule->command('inspire')->hourly();
28+
}
29+
30+
/**
31+
* Register the commands for the application.
32+
*
33+
* @return void
34+
*/
35+
protected function commands()
36+
{
37+
$this->load(__DIR__.'/Commands');
38+
39+
require base_path('routes/console.php');
40+
}
41+
}

app/Exceptions/Handler.php

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
3+
namespace App\Exceptions;
4+
5+
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
6+
use Throwable;
7+
8+
class Handler extends ExceptionHandler
9+
{
10+
/**
11+
* A list of the exception types that are not reported.
12+
*
13+
* @var array
14+
*/
15+
protected $dontReport = [
16+
//
17+
];
18+
19+
/**
20+
* A list of the inputs that are never flashed for validation exceptions.
21+
*
22+
* @var array
23+
*/
24+
protected $dontFlash = [
25+
'current_password',
26+
'password',
27+
'password_confirmation',
28+
];
29+
30+
/**
31+
* Register the exception handling callbacks for the application.
32+
*
33+
* @return void
34+
*/
35+
public function register()
36+
{
37+
$this->reportable(function (Throwable $e) {
38+
//
39+
});
40+
}
41+
}

app/Http/Controllers/Controller.php

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
6+
use Illuminate\Foundation\Bus\DispatchesJobs;
7+
use Illuminate\Foundation\Validation\ValidatesRequests;
8+
use Illuminate\Routing\Controller as BaseController;
9+
10+
class Controller extends BaseController
11+
{
12+
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
13+
}
+140
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use App\Models\User;
6+
use Illuminate\Http\Request;
7+
use Inertia\Inertia;
8+
9+
class UserController extends Controller
10+
{
11+
/**
12+
* Display a listing of the resource.
13+
*
14+
* @return \Illuminate\Http\Response
15+
*/
16+
public function index()
17+
{
18+
return Inertia::render('Index', [
19+
'users' => User::latest()->paginate()
20+
]);
21+
}
22+
23+
/**
24+
* Show the form for creating a new resource.
25+
*
26+
* @return \Illuminate\Http\Response
27+
*/
28+
public function create()
29+
{
30+
return Inertia::render('Create');
31+
}
32+
33+
/**
34+
* Store a newly created resource in storage.
35+
*
36+
* @param \Illuminate\Http\Request $request
37+
* @return \Illuminate\Http\Response
38+
*/
39+
public function store(Request $request)
40+
{
41+
$request->validate([
42+
'name' => 'required|min:3',
43+
'email' => 'required|min:8|unique:users',
44+
'password' => 'required|min:8'
45+
]);
46+
47+
if ($request->verified) {
48+
$request->merge([
49+
'email_verified_at' => now()
50+
]);
51+
}
52+
53+
$user = User::create(
54+
$request->all()
55+
);
56+
57+
return redirect()
58+
->route('users.show', $user->id)
59+
->with('message', 'Successful, user added successfully.');
60+
}
61+
62+
/**
63+
* Display the specified resource.
64+
*
65+
* @param int $id
66+
* @return \Illuminate\Http\Response
67+
*/
68+
public function show($id)
69+
{
70+
return Inertia::render('Show', [
71+
'user' => User::find($id)
72+
]);
73+
}
74+
75+
/**
76+
* Show the form for editing the specified resource.
77+
*
78+
* @param int $id
79+
* @return \Illuminate\Http\Response
80+
*/
81+
public function edit($id)
82+
{
83+
return Inertia::render('Edit', [
84+
'user' => User::find($id)
85+
]);
86+
}
87+
88+
/**
89+
* Update the specified resource in storage.
90+
*
91+
* @param \Illuminate\Http\Request $request
92+
* @param int $id
93+
* @return \Illuminate\Http\Response
94+
*/
95+
public function update(Request $request, $id)
96+
{
97+
$validate = [
98+
'name' => 'required|min:3',
99+
'email' => 'required|min:8|unique:users,id,' . $id,
100+
];
101+
102+
if ($request->isPassword) {
103+
$validate['password'] = 'required|min:8';
104+
}
105+
else {
106+
$request->replace($request->except('password'));
107+
}
108+
109+
$request->validate($validate);
110+
111+
$user = User::find($id);
112+
113+
$user->update($request->all());
114+
115+
return redirect()
116+
->route('users.show', $id)
117+
->with('message', 'Successful, user updated successfully.');
118+
}
119+
120+
/**
121+
* Remove the specified resource from storage.
122+
*
123+
* @param int $id
124+
* @return \Illuminate\Http\Response
125+
*/
126+
public function destroy($id)
127+
{
128+
$user = User::findOrFail($id);
129+
130+
$user->delete();
131+
132+
$message = $user
133+
? 'Successful, user deleted successfully.'
134+
: 'Failed, the user has not been deleted.';
135+
136+
return redirect()
137+
->route('users.index')
138+
->with('message', $message);
139+
}
140+
}

0 commit comments

Comments
 (0)