1. Go to this page and download the library: Download rayhan2001/module-generator library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
namespace App\Http\Controllers;
use App\Repositories\ProductRepository;
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function __construct(
protected ProductRepository $repository
) {}
public function index(Request $request)
{
return response()->json($this->repository->paginateData($request));
}
public function store(Request $request)
{
$item = $this->repository->store($request->all());
return response()->json($item, 201);
}
public function show($id)
{
return response()->json($this->repository->find($id));
}
public function update(Request $request, $id)
{
$item = $this->repository->update($id, $request->all());
return response()->json($item);
}
public function destroy($id)
{
$this->repository->delete($id);
return response()->json(['message' => 'Deleted']);
}
}
namespace App\Http\Controllers;
use App\Http\Requests\CategoryRequest;
use App\Repositories\CategoryRepository;
use Illuminate\Http\Request;
class CategoryController extends Controller
{
public function __construct(
protected CategoryRepository $repository
) {}
public function index(Request $request)
{
$data['title'] = 'All ' . \Illuminate\Support\Str::plural('Category');
$data['collection'] = $this->repository->paginateData($request);
return view('categories.index')->with($data);
}
public function create()
{
$data['title'] = 'Create Category';
return view('categories.create')->with($data);
}
public function store(CategoryRequest $request)
{
$this->repository->store($request->validated());
return redirect()->route('categories.index')->with('success', 'Created successfully');
}
public function edit($id)
{
$data['title'] = 'Edit Category';
$data['item'] = $this->repository->find($id);
return view('categories.edit')->with($data);
}
public function update(CategoryRequest $request, $id)
{
$this->repository->update($id, $request->validated());
return redirect()->route('categories.index')->with('success', 'Updated successfully');
}
public function destroy($id)
{
$this->repository->delete($id);
return redirect()->route('categories.index')->with('success', 'Deleted successfully');
}
}
return [
/*
|--------------------------------------------------------------------------
| Default Module Type
|--------------------------------------------------------------------------
|
| This option controls the default module type when no --type flag
| is provided. You can set this to 'api' or 'web'.
|
*/
'default_type' => 'api',
];
// database/migrations/YYYY_MM_DD_HHMMSS_create_products_table.php
public function up(): void
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->text('description')->nullable();
$table->decimal('price', 10, 2);
$table->boolean('is_active')->default(true);
$table->timestamps();
});
}