Halo sobat Coders, kali kita akan bahas bagaimana cara menggunakan hasOne dan hasMany pada Laravel Lumen 9 php version 8.
Untuk kali ini saya akan memberikan sharing kepada temen-temen mengenai cara penggunaannya pada Laravel Lumen.
Untuk pertama erdnya atau db percontohannya:
Model Students
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Students extends Model
{
protected $table = 'students';
}
Controller Stundents
<?php
namespace App\Http\Controllers;
use App\Models\Students;
use Illuminate\Http\Request;
class StudentsController extends Controller
{
public function index()
{
$getAllUsers = Students::query()->get();
return response()->json([
'status' => 200,
'message' => 'Get data all students',
'data' => $getAllUsers
]);
}
public function store(Request $request)
{
$postsStudents = new Students();
$postsStudents->username = $request->username;
$postsStudents->save();
return response()->json([
'status' => 200,
'message' => 'Successfully post data students',
'data' => $postsStudents
]);
}
public function update(Request $request, $id)
{
$updatedStudents = Students::find($id);
$updatedStudents->username = $request->username;
$updatedStudents->save();
return response()->json([
'status' => 200,
'message' => 'Successfully Update data students',
'data' => $updatedStudents
]);
}
public function destroy($id)
{
$delete = Students::find($id);
$delete->delete();
return response()->json([
'status' => 200,
'message' => 'Successfully delete data students',
'data' => $delete
]);
}
}
Route web.php Students
// students
$router->get('/students', 'StudentsController@index');
$router->post('/students', 'StudentsController@store');
$router->put('/students/{id}', 'StudentsController@update');
$router->delete('/students/{id}', 'StudentsController@destroy');
Postman Results Students [ Get ]
Postman Results Students [ Post ]
Postman Results Students [ Update ]
dikarenakan di postman, thunder atau tempat menampung api tidak support langsung metode PUT, diharuskan menggunakan post dan menambahkan _method PUT
POST | {url}/students/{id} |
Key | Value |
username | {value username } |
_method | Put |
Postman Results Students [ Delete ]
Model Class
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Classes extends Model
{
protected $table = 'class';
}
Controller Class
<?php
namespace App\Http\Controllers;
use App\Models\Classes;
use Illuminate\Http\Request;
class ClassController extends Controller
{
public function index()
{
$getAllClases = Classes::query()->get();
return response()->json([
'status' => 200,
'message' => 'Get data all class',
'data' => $getAllClases
]);
}
public function store(Request $request)
{
$postsClasses = new Classes();
$postsClasses->name_class = $request->name_class;
$postsClasses->students_id = $request->students_id;
$postsClasses->save();
return response()->json([
'status' => 200,
'message' => 'Successfully post data class',
'data' => $postsClasses
]);
}
public function update(Request $request, $id)
{
$updatedClasses = Classes::find($id);
$updatedClasses->name_class = $request->name_class;
$updatedClasses->students_id = $request->students_id;
$updatedClasses->save();
return response()->json([
'status' => 200,
'message' => 'Successfully Update data class',
'data' => $updatedClasses
]);
}
public function destroy($id)
{
$delete = Classes::find($id);
$delete->delete();
return response()->json([
'status' => 200,
'message' => 'Successfully delete data class',
'data' => $delete
]);
}
}
Route web.php Class
// class
$router->get('/classes', 'ClassController@index');
$router->post('/classes', 'ClassController@store');
$router->put('/classes/{id}', 'ClassController@update');
$router->delete('/classes/{id}', 'ClassController@destroy');
Postman Results Clasess [ Get ]
Postman Results Classes [ Post ]
Postman Results Classes [ Update ]
dikarenakan di postman, thunder atau tempat menampung api tidak support langsung metode PUT, diharuskan menggunakan post dan menambahkan _method PUT
POST | {url}/classes/{id} |
Key | Value |
name_class | {value name_class} |
students_id | {value id ( students )} |
_method | Put |
Postman Results Classes [ Delete ]
Penjelasan Has One
Penjelasan singkat dari saya, students punya kelas hanya 1 yaitu class, dimana students hanya bisa menerima satu dari class tersebut.
Penjelasan Belongs To
Class memiliki banyak students, bukan students banyak class.
Capek ges, sekian ya!