💾 Archived View for gem.sdf.org › s.kaplan › cheatsheets › libraries-and-frameworks › laravel.md captured on 2024-08-31 at 12:50:38.
⬅️ Previous capture (2023-09-08)
-=-=-=-=-=-=-
# Laravel Cheatsheet ## Unique Features - Model-View-Controller (MVC) architecture - Artisan command-line interface - Object-Relational Mapping (ORM) - Blade template engine - Routing - Eloquent ORM ## Models
// Define a model
class ModelName extends Model
{
protected $fillable = ['field_name'];
}
// Create a migration
php artisan make:migration create_model_names_table
// Apply migrations
php artisan migrate
## Controllers
// Define a controller
class ControllerName extends Controller
{
public function functionName(Request $request)
{
// Controller body
return view('view_name');
}
}
// Route to a controller method
Route::get('/url', [ControllerName::class, 'functionName']);
## Views
<!-- Blade syntax -->
@foreach ($items as $item)
{{ $item->attribute }}
@endforeach
## Forms
<!-- Blade syntax for form -->
<form method="POST" action="/url">
@csrf
<input type="text" name="field_name">
<button type="submit">Submit</button>
</form>
<!-- Handle form submission in controller -->
public function functionName(Request $request)
{
$model = new ModelName;
$model->field_name = $request->input('field_name');
$model->save();
return redirect('/success');
}
## Authentication
// User registration
public function register(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users|max:255',
'password' => 'required|confirmed|min:8',
]);
$user = User::create([
'name' => $validatedData['name'],
'email' => $validatedData['email'],
'password' => Hash::make($validatedData['password']),
]);
Auth::login($user);
return redirect(RouteServiceProvider::HOME);
}
// User login
public function login(Request $request)
{
$credentials = $request->validate([
'email' => 'required|email',
'password' => 'required',
]);
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended(RouteServiceProvider::HOME);
}
throw ValidationException::withMessages([
'email' => __('auth.failed'),
]);
}
// User logout
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
}
## Resources - [Laravel Documentation](https://laravel.com/docs) - [Laravel From Scratch](https://laracasts.com/series/laravel-6-from-scratch) - [Laravel News](https://laravel-news.com/)