דף עזר Laravel
מדריך Laravel לחיפוש והדפסה — Artisan, ניתוב, Eloquent, בונה השאילתות, מיגרציות, Blade, אימות ואוספים. בחינם.
Artisan CLI
14php artisan serve
הפעלת שרת הפיתוח המקומי
php artisan make:model Post -mcr
מודל עם migration, controller ו-resource
php artisan make:controller PostController
יצירת מחלקת controller חדשה
php artisan make:migration create_posts_table
יצירת קובץ migration חדש
php artisan migrate
הרצת migrations ממתינים של מסד הנתונים
php artisan migrate:fresh --seed
מחיקת כל הטבלאות, migration מחדש ו-seed
php artisan db:seed
הרצת ה-seeders של מסד הנתונים
php artisan tinker
פתיחת shell REPL אינטראקטיבי
php artisan route:list
הצגת כל ה-routes הרשומים
php artisan optimize
מטמון config, routes ו-views
php artisan queue:work
עיבוד jobs בתור
php artisan schedule:work
הרצת ה-scheduler בחזית
php artisan storage:link
symlink של storage לנתיב הציבורי
php artisan key:generate
יצירת מפתח האפליקציה
ניתוב
13Route::get('/users', [UserController::class, 'index'])
הגדרת route מסוג GET ל-controller
Route::post('/users', [UserController::class, 'store'])
הגדרת route מסוג POST
Route::put('/users/{user}', [UserController::class, 'update'])
הגדרת route מסוג PUT
Route::patch('/users/{user}', [UserController::class, 'update'])
הגדרת route מסוג PATCH
Route::delete('/users/{user}', [UserController::class, 'destroy'])
הגדרת route מסוג DELETE
Route::get('/users/{id}', $fn)
פרמטר route חובה
Route::get('/users/{id?}', $fn)
פרמטר route אופציונלי
Route::get('/profile', $fn)->name('profile')
מתן שם ל-route ליצירת URL
Route::get('/admin', $fn)->middleware('auth')
צירוף middleware ל-route
Route::resource('posts', PostController::class)
רישום routes של resource מסוג RESTful
Route::prefix('admin')->group(function () {})
קיבוץ routes תחת קידומת URI
Route::controller(PostController::class)->group($fn)
קיבוץ routes ל-controller אחד
Route::fallback($fn)
טיפול ב-routes לא תואמים (404)
controllers
10php artisan make:controller PostController --resource
controller של resource עם שיטות CRUD
public function __invoke(Request $request)
controller invokable של פעולה יחידה
public function index() {}
הצגת resources (שיטת resource)
public function store(Request $request) {}
שמירת resource חדש
public function show(Post $post) {}
הצגת resource אחד (route model binding)
public function __construct(PostService $svc) {}
הזרקת תלות דרך ה-constructor
return view('posts.index', ['posts' => $posts])
החזרת view של Blade עם נתונים
return response()->json($data)
החזרת תגובת JSON
return redirect()->route('posts.index')
הפניה ל-route בעל שם
return back()
הפניה לעמוד הקודם
Eloquent ORM
14Post::all()
קבלת כל רשומה
Post::find($id)
מציאת רשומה לפי מפתח ראשי
Post::where('active', true)->first()
הרשומה הראשונה התואמת תנאי
Post::create(['title' => 'Hi'])
השמה המונית ושמירת רשומה
$post->update(['title' => 'Edited'])
עדכון מודל קיים
$post->delete()
מחיקת מופע מודל
Post::firstOrCreate(['slug' => $slug])
מציאה או יצירה של רשומה תואמת
Post::updateOrCreate($attrs, $values)
עדכון אם נמצא, אחרת יצירה
Post::with('author')->get()
eager load של קשר
public function comments() { return $this->hasMany(Comment::class); }
קשר אחד-לרבים
public function author() { return $this->belongsTo(User::class); }
קשר אחד-לרבים הופכי
protected $fillable = ['title', 'body'];
מאפיינים ניתנים להשמה המונית
protected function casts(): array { return ['published_at' => 'datetime']; }
casts של מאפיינים (שיטת casts())
Post::onlyTrashed()->restore()
שחזור רשומות שנמחקו רכות
query builder
13DB::table('users')->get()
קבלת כל השורות מטבלה
DB::table('users')->where('votes', '>', 100)->get()
סינון שורות לפי תנאי
DB::table('users')->join('posts', 'users.id', '=', 'posts.user_id')
inner join של שתי טבלאות
DB::table('users')->orderBy('name')->get()
מיון תוצאות לפי עמודה
DB::table('orders')->groupBy('status')->get()
קיבוץ שורות לפי עמודה
DB::table('users')->select('name', 'email')->get()
בחירת עמודות מסוימות
DB::table('users')->insert(['name' => 'Sam'])
הוספת שורה חדשה
DB::table('users')->where('id', 1)->update(['votes' => 1])
עדכון שורות תואמות
DB::table('users')->pluck('email')
קבלת עמודה בודדת כ-collection
DB::table('users')->count()
ספירת שורות תואמות
DB::table('users')->where('id', 1)->exists()
בדיקה אם שורות קיימות
DB::table('users')->paginate(15)
עימוד התוצאות
DB::table('users')->chunk(100, $fn)
עיבוד תוצאות במנות
migrations וסכמה
12Schema::create('posts', function (Blueprint $table) {})
יצירת טבלה חדשה
$table->id()
מפתח ראשי בעלייה אוטומטית
$table->string('title')
עמודת VARCHAR
$table->integer('votes')
עמודת integer
$table->boolean('active')
עמודת boolean
$table->timestamps()
עמודות created_at ו-updated_at
$table->foreignId('user_id')->constrained()
מפתח זר עם אילוץ
$table->string('note')->nullable()
התרת ערכי NULL
$table->boolean('active')->default(true)
הגדרת ערך ברירת מחדל
$table->index('slug')
הוספת אינדקס לעמודה
$table->unique('email')
הוספת אילוץ ייחודיות
$table->dropColumn('votes')
מחיקת עמודה
תבניות Blade
14@if ($ok) ... @elseif ($x) ... @else ... @endif
רינדור מותנה
@foreach ($posts as $post) ... @endforeach
מעבר על collection
@forelse ($posts as $post) ... @empty ... @endforelse
לולאה עם ברירת מחדל ריקה
{{ $variable }}
פלט escaped
{!! $html !!}
פלט HTML גולמי לא-escaped
@extends('layouts.app')
ירושה מ-layout
@section('content') ... @endsection
הגדרת section של layout
@yield('content')
פלט של section ב-layout
@include('partials.nav')
הכללת view אחר
<x-alert type="error" />
רינדור רכיב Blade
@csrf
שדה token של CSRF לטפסים
@auth ... @endauth
הצגת תוכן למשתמשים מאומתים
@can('update', $post) ... @endcan
בדיקת gate של הרשאה
{{ $loop->index }}
משתנה לולאה בתוך @foreach
אימות
12$request->validate(['title' => 'required'])
אימות נתוני בקשה מוטבע
'email' => 'required|email'
כלל אימייל חובה ותקין
'name' => 'required|max:255'
חובה עם אורך מקסימלי
'email' => 'unique:users,email'
חייב להיות ייחודי בטבלה
'age' => 'nullable|integer|min:18'
integer אופציונלי עם מינימום
'role' => ['required', Rule::in(['admin', 'user'])]
הגבלה לערכים מותרים
php artisan make:request StorePostRequest
יצירת מחלקת Form Request
public function rules(): array { return [...]; }
כללי אימות של Form Request
public function authorize(): bool { return true; }
הרשאה של Form Request
public function messages(): array { return [...]; }
הודעות אימות מותאמות
$validator = Validator::make($data, $rules)
יצירת validator ידנית
$request->validated()
קבלת קלט מאומת בלבד
בקשות ותגובות
10request()->input('name')
אחזור ערך קלט
request()->query('page')
אחזור ערך ממחרוזת שאילתה
request()->all()
קבלת כל הקלט כמערך
request()->only(['name', 'email'])
קבלת תת-קבוצה של הקלט
request()->has('name')
בדיקה אם קלט קיים
response()->json(['ok' => true])
החזרת תגובת JSON
redirect()->route('home')->with('status', 'Saved')
הפניה עם הודעת flash
back()->withInput()
הפניה חזרה תוך שמירת קלט ישן
abort(404)
זריקת חריגת HTTP
abort_if($user->banned, 403)
ביטול הבקשה באופן מותנה
collections
13$collection->map(fn ($x) => $x * 2)
המרת כל פריט
$collection->filter(fn ($x) => $x > 0)
שמירת פריטים תואמים
$collection->each(fn ($x) => $x->save())
הרצת callback לכל פריט
$collection->pluck('name')
חילוץ עמודה אחת
$collection->reduce(fn ($c, $x) => $c + $x, 0)
צמצום לערך יחיד
$collection->sortBy('created_at')
מיון לפי מפתח
$collection->groupBy('status')
קיבוץ פריטים לפי מפתח
$collection->where('active', true)
סינון לפי זוג מפתח/ערך
$collection->first()
קבלת הפריט הראשון
$collection->contains('name', 'Sam')
בדיקת קיום פריט תואם
$collection->sum('price')
סכימת עמודה
$collection->flatten()
שיטוח collections מקוננים
$collection->toArray()
המרה למערך רגיל
אימות ו-middleware
11Auth::user()
קבלת המשתמש המאומת
Auth::check()
בדיקה אם משתמש מחובר
Auth::id()
קבלת מזהה המשתמש המאומת
Auth::login($user)
התחברות משתמש
Auth::logout()
התנתקות המשתמש הנוכחי
auth()->user()
מסייע למשתמש הנוכחי
Route::get('/home', $fn)->middleware('auth')
הגנה על route עם auth
Gate::allows('update', $post)
בדיקת gate של הרשאה
$user->can('update', $post)
בדיקת יכולת מול policy
php artisan make:policy PostPolicy --model=Post
יצירת policy של הרשאה
php artisan make:middleware EnsureTokenIsValid
יצירת מחלקת middleware
מסייעים ושונות
12config('app.name')
קריאת ערך config
env('APP_DEBUG', false)
קריאת משתנה סביבה
route('posts.show', $post)
יצירת URL ל-route בעל שם
url('/dashboard')
יצירת URL מלא ומוסמך
asset('css/app.css')
URL ל-asset ציבורי
old('email')
אחזור קלט flash ישן
now()->addDays(7)
חותמת זמן Carbon נוכחית
Str::slug('My Title')
מסייע מחרוזת (slugify)
collect([1, 2, 3])->sum()
יצירת collection ממערך
cache()->remember('key', 60, $fn)
שמירת ערך במטמון למשך זמן
dd($value)
dump של ערך ויציאה
Storage::put('file.txt', $contents)
כתיבת קובץ ל-storage
אף רשומה אינה תואמת ל-„:q”.
צריך עזרה?
נתקלת בבעיה בכלי הזה? ספר לצוות שלנו.