CRM-panel/crm-panel/app/Http/Controllers/EmployeeController.php
2025-05-08 15:47:58 +05:45

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');
}
}