-
Notifications
You must be signed in to change notification settings - Fork 0
Controllers
Laureano F. Lamonega edited this page Jul 17, 2026
·
2 revisions
Controllers extend Antimonial\Controller\Controller:
use Antimonial\Controller\Controller;
use Antimonial\Http\Request;
class UserController extends Controller
{
public function index(Request $request): Response
{
return $this->view('users/index', ['users' => User::all()]);
}
}return $this->view('users/index', ['users' => $users]);
return $this->view('users/index', $data, 'layouts/main'); // With layoutreturn $this->json(['users' => $users], 200);return $this->redirect('/users');
return $this->redirect('/login', 301);return $this->back($request); // Redirect to HTTP_REFERERreturn (new Response())->download('storage/report.pdf');
return (new Response())->download('storage/report.pdf', 'custom-name.pdf');return (new Response())->file('storage/image.png');protected function validate(Request $request, array $rules): arrayReturns only the fields that have rules. Throws ValidationException (422) on failure.
| Rule | Description |
|---|---|
required |
Field must be present and non-empty |
email |
Must be a valid email address |
min:N |
Minimum length (string) or value (number) |
max:N |
Maximum length (string) or value (number) |
in:v1,v2 |
Must be one of the listed values |
numeric |
Must be numeric |
alpha |
Must contain only letters |
alpha_num |
Must contain only letters and numbers |
public function store(Request $request): Response
{
$data = $this->validate($request, [
'name' => 'required|min:2',
'email' => 'required|email',
'role' => 'required|in:admin,user',
]);
return $this->json(['created' => true], 201);
}