fully working now

This commit is contained in:
2025-05-07 15:11:58 +05:45
parent 12e3d4a2f0
commit 50258a116a
20 changed files with 574 additions and 80 deletions

View File

@ -42,6 +42,6 @@ class AuthenticatedSessionController extends Controller
$request->session()->regenerateToken();
return redirect('/');
return redirect()->route('login');
}
}

View File

@ -0,0 +1,74 @@
<?php
namespace App\Http\Controllers;
use App\Models\Company;
use Illuminate\Http\Request;
class CompanyController extends Controller
{
public function index()
{
$companies = Company::paginate(10);
return view('companies.index', compact('companies'));
}
public function create()
{
return view('companies.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'nullable|email',
'logo' => 'nullable|image|dimensions:min_width=100,min_height=100',
'website' => 'nullable|url',
]);
if ($request->hasFile('logo')) {
$path = $request->file('logo')->store('public/logos');
$request->merge(['logo' => $path]);
}
Company::create($request->all());
return redirect()->route('companies.index')->with('success', 'Company created successfully.');
}
public function show(Company $company)
{
return view('companies.show', compact('company'));
}
public function edit(Company $company)
{
return view('companies.edit', compact('company'));
}
public function update(Request $request, Company $company)
{
$request->validate([
'name' => 'required',
'email' => 'nullable|email',
'logo' => 'nullable|image|dimensions:min_width=100,min_height=100',
'website' => 'nullable|url',
]);
if ($request->hasFile('logo')) {
$path = $request->file('logo')->store('public/logos');
$company->logo = $path;
}
$company->update($request->all());
return redirect()->route('companies.index')->with('success', 'Company updated successfully.');
}
public function destroy(Company $company)
{
$company->delete();
return redirect()->route('companies.index')->with('success', 'Company deleted successfully.');
}
}

View File

@ -0,0 +1,69 @@
<?php
namespace App\Http\Controllers;
use App\Models\Employee;
use App\Models\Company;
use Illuminate\Http\Request;
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(Request $request)
{
$request->validate([
'first_name' => 'required',
'last_name' => 'required',
'company_id' => 'required|exists:companies,id',
'email' => 'nullable|email',
'phone' => 'nullable|string',
]);
Employee::create($request->all());
return redirect()->route('employees.index');
}
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');
}
}

View File

@ -2,9 +2,18 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Company extends Model
{
//
use HasFactory;
// Define fillable fields for mass assignment
protected $fillable = [
'name',
'email',
'logo',
'website',
];
}

View File

@ -2,9 +2,19 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Employee extends Model
{
//
use HasFactory;
// Add these fields to allow mass assignment
protected $fillable = [
'first_name',
'last_name',
'company_id',
'email',
'phone',
];
}