70 lines
1.9 KiB
PHP
70 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Employee;
|
|
use App\Models\Company;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Requests\EmployeeRequest;
|
|
|
|
class EmployeeController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$employees = Employee::paginate(10);
|
|
return view('employees.index', compact('employees'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$companies = Company::all(); // You need to fetch companies for the dropdown
|
|
return view('employees.create', compact('companies'));
|
|
}
|
|
|
|
public function store(EmployeeRequest $request)
|
|
{
|
|
$employee = new Employee();
|
|
$employee->first_name = $request->first_name;
|
|
$employee->last_name = $request->last_name;
|
|
$employee->company_id = $request->company_id;
|
|
$employee->email = $request->email;
|
|
$employee->phone = $request->phone;
|
|
|
|
$employee->save();
|
|
|
|
return redirect()->route('employees.index')->with('success', 'Employee created successfully!');
|
|
}
|
|
|
|
public function show(Employee $employee)
|
|
{
|
|
return view('employees.show', compact('employee'));
|
|
}
|
|
|
|
public function edit(Employee $employee)
|
|
{
|
|
$companies = Company::all();
|
|
return view('employees.edit', compact('employee', 'companies'));
|
|
}
|
|
|
|
public function update(Request $request, Employee $employee)
|
|
{
|
|
$request->validate([
|
|
'first_name' => 'required',
|
|
'last_name' => 'required',
|
|
'company_id' => 'required|exists:companies,id',
|
|
'email' => 'nullable|email',
|
|
'phone' => 'nullable|string',
|
|
]);
|
|
|
|
$employee->update($request->all());
|
|
|
|
return redirect()->route('employees.index');
|
|
}
|
|
|
|
public function destroy(Employee $employee)
|
|
{
|
|
$employee->delete();
|
|
return redirect()->route('employees.index');
|
|
}
|
|
}
|