Laravel চিট শিট
অনুসন্ধানযোগ্য, প্রিন্টযোগ্য Laravel রেফারেন্স — Artisan, রাউটিং, Eloquent, কোয়েরি বিল্ডার, মাইগ্রেশন, Blade, ভ্যালিডেশন এবং কালেকশন। বিনামূল্যে।
Artisan CLI
14php artisan serve
local development server চালু করুন
php artisan make:model Post -mcr
migration, controller ও resource সহ model
php artisan make:controller PostController
নতুন controller ক্লাস তৈরি করুন
php artisan make:migration create_posts_table
নতুন migration ফাইল তৈরি করুন
php artisan migrate
pending ডেটাবেস migration চালান
php artisan migrate:fresh --seed
সব table drop, re-migrate ও seed করুন
php artisan db:seed
ডেটাবেস seeder চালান
php artisan tinker
ইন্টারঅ্যাক্টিভ REPL shell খুলুন
php artisan route:list
সব নিবন্ধিত route তালিকা করুন
php artisan optimize
config, route ও view cache করুন
php artisan queue:work
queue-তে job প্রসেস করুন
php artisan schedule:work
foreground-এ scheduler চালান
php artisan storage:link
storage public path-এ symlink করুন
php artisan key:generate
application key তৈরি করুন
Routing
13Route::get('/users', [UserController::class, 'index'])
controller-এ GET route সংজ্ঞায়িত করুন
Route::post('/users', [UserController::class, 'store'])
POST route সংজ্ঞায়িত করুন
Route::put('/users/{user}', [UserController::class, 'update'])
PUT route সংজ্ঞায়িত করুন
Route::patch('/users/{user}', [UserController::class, 'update'])
PATCH route সংজ্ঞায়িত করুন
Route::delete('/users/{user}', [UserController::class, 'destroy'])
DELETE route সংজ্ঞায়িত করুন
Route::get('/users/{id}', $fn)
আবশ্যক route parameter
Route::get('/users/{id?}', $fn)
ঐচ্ছিক route parameter
Route::get('/profile', $fn)->name('profile')
URL তৈরির জন্য route নাম দিন
Route::get('/admin', $fn)->middleware('auth')
route-এ middleware যুক্ত করুন
Route::resource('posts', PostController::class)
RESTful resource route নিবন্ধন করুন
Route::prefix('admin')->group(function () {})
URI prefix-এ route group করুন
Route::controller(PostController::class)->group($fn)
এক controller-এ route group করুন
Route::fallback($fn)
unmatched route পরিচালনা করুন (404)
Controller
10php artisan make:controller PostController --resource
CRUD method সহ resource controller
public function __invoke(Request $request)
Single-action invokable controller
public function index() {}
resource তালিকা করুন (resource method)
public function store(Request $request) {}
নতুন resource persist করুন
public function show(Post $post) {}
একটি resource দেখান (route model binding)
public function __construct(PostService $svc) {}
constructor-এ dependency inject করুন
return view('posts.index', ['posts' => $posts])
ডেটা সহ Blade view return করুন
return response()->json($data)
JSON response return করুন
return redirect()->route('posts.index')
নামযুক্ত route-এ redirect করুন
return back()
আগের পেজে redirect করুন
Eloquent ORM
14Post::all()
প্রতিটি record নিন
Post::find($id)
primary key দিয়ে record খুঁজুন
Post::where('active', true)->first()
শর্ত match করা প্রথম record
Post::create(['title' => 'Hi'])
record mass-assign ও persist করুন
$post->update(['title' => 'Edited'])
বিদ্যমান model আপডেট করুন
$post->delete()
model instance মুছুন
Post::firstOrCreate(['slug' => $slug])
matching record খুঁজুন বা তৈরি করুন
Post::updateOrCreate($attrs, $values)
পেলে আপডেট, নাহলে তৈরি করুন
Post::with('author')->get()
relationship eager load করুন
public function comments() { return $this->hasMany(Comment::class); }
One-to-many relationship
public function author() { return $this->belongsTo(User::class); }
Inverse one-to-many relationship
protected $fillable = ['title', 'body'];
Mass-assignable attribute
protected function casts(): array { return ['published_at' => 'datetime']; }
Attribute cast (casts() method)
Post::onlyTrashed()->restore()
soft-deleted record restore করুন
Query builder
13DB::table('users')->get()
table থেকে সব row আনুন
DB::table('users')->where('votes', '>', 100)->get()
শর্ত দিয়ে row ফিল্টার করুন
DB::table('users')->join('posts', 'users.id', '=', 'posts.user_id')
দুটি table inner join করুন
DB::table('users')->orderBy('name')->get()
column দিয়ে ফলাফল order করুন
DB::table('orders')->groupBy('status')->get()
column দিয়ে row group করুন
DB::table('users')->select('name', 'email')->get()
নির্দিষ্ট কলাম নির্বাচন
DB::table('users')->insert(['name' => 'Sam'])
নতুন row insert করুন
DB::table('users')->where('id', 1)->update(['votes' => 1])
মিলযুক্ত row আপডেট
DB::table('users')->pluck('email')
একটি column collection হিসেবে নিন
DB::table('users')->count()
matching row গণনা করুন
DB::table('users')->where('id', 1)->exists()
row আছে কিনা পরীক্ষা করুন
DB::table('users')->paginate(15)
ফলাফল paginate করুন
DB::table('users')->chunk(100, $fn)
ফলাফল chunk-এ প্রসেস করুন
Migration ও schema
12Schema::create('posts', function (Blueprint $table) {})
নতুন টেবিল তৈরি
$table->id()
Auto-incrementing primary key
$table->string('title')
VARCHAR column
$table->integer('votes')
Integer column
$table->boolean('active')
Boolean column
$table->timestamps()
created_at ও updated_at column
$table->foreignId('user_id')->constrained()
constraint সহ foreign key
$table->string('note')->nullable()
NULL মান অনুমোদন করুন
$table->boolean('active')->default(true)
ডিফল্ট মান সেট করুন
$table->index('slug')
column-এ index যোগ করুন
$table->unique('email')
unique constraint যোগ করুন
$table->dropColumn('votes')
column drop করুন
Blade template
14@if ($ok) ... @elseif ($x) ... @else ... @endif
Conditional rendering
@foreach ($posts as $post) ... @endforeach
collection-এর উপর loop
@forelse ($posts as $post) ... @empty ... @endforelse
empty fallback সহ loop
{{ $variable }}
escaped আউটপুট echo করুন
{!! $html !!}
unescaped raw HTML echo করুন
@extends('layouts.app')
layout থেকে inherit করুন
@section('content') ... @endsection
layout section সংজ্ঞায়িত করুন
@yield('content')
layout-এ section আউটপুট করুন
@include('partials.nav')
অন্য view include করুন
<x-alert type="error" />
Blade component render করুন
@csrf
form-এর জন্য CSRF token ফিল্ড
@auth ... @endauth
authenticated user-কে content দেখান
@can('update', $post) ... @endcan
Authorization gate পরীক্ষা
{{ $loop->index }}
@foreach-এর ভিতরে loop variable
Validation
12$request->validate(['title' => 'required'])
request ডেটা inline validate করুন
'email' => 'required|email'
আবশ্যক ও বৈধ ইমেল নিয়ম
'name' => 'required|max:255'
max length সহ আবশ্যক
'email' => 'unique:users,email'
table-এ unique হতে হবে
'age' => 'nullable|integer|min:18'
minimum সহ ঐচ্ছিক integer
'role' => ['required', Rule::in(['admin', 'user'])]
অনুমোদিত মানে সীমিত করুন
php artisan make:request StorePostRequest
Form Request ক্লাস তৈরি করুন
public function rules(): array { return [...]; }
Form Request validation নিয়ম
public function authorize(): bool { return true; }
Form Request authorization
public function messages(): array { return [...]; }
কাস্টম validation message
$validator = Validator::make($data, $rules)
ম্যানুয়ালি validator তৈরি করুন
$request->validated()
শুধু validated input নিন
Request ও response
10request()->input('name')
input মান নিন
request()->query('page')
query string মান নিন
request()->all()
সব input array হিসেবে নিন
request()->only(['name', 'email'])
input-এর একটি subset নিন
request()->has('name')
input আছে কিনা পরীক্ষা করুন
response()->json(['ok' => true])
JSON response return করুন
redirect()->route('home')->with('status', 'Saved')
flash message সহ redirect করুন
back()->withInput()
পুরোনো input রেখে back redirect করুন
abort(404)
HTTP exception throw করুন
abort_if($user->banned, 403)
শর্তসাপেক্ষে request abort করুন
Collection
13$collection->map(fn ($x) => $x * 2)
প্রতি আইটেম transform করুন
$collection->filter(fn ($x) => $x > 0)
matching আইটেম রাখুন
$collection->each(fn ($x) => $x->save())
প্রতি আইটেমে callback চালান
$collection->pluck('name')
একটি column বের করুন
$collection->reduce(fn ($c, $x) => $c + $x, 0)
একটি মানে reduce করা
$collection->sortBy('created_at')
key দিয়ে সাজান
$collection->groupBy('status')
key দিয়ে আইটেম group করুন
$collection->where('active', true)
key/value জোড়া দিয়ে ফিল্টার করুন
$collection->first()
প্রথম আইটেম নিন
$collection->contains('name', 'Sam')
matching আইটেম পরীক্ষা করুন
$collection->sum('price')
একটি column যোগ করুন
$collection->flatten()
nested collection flatten করুন
$collection->toArray()
plain array-তে রূপান্তর করুন
Auth ও middleware
11Auth::user()
authenticated user নিন
Auth::check()
user লগ-ইন কিনা পরীক্ষা করুন
Auth::id()
authenticated user ID নিন
Auth::login($user)
user-কে লগ ইন করান
Auth::logout()
বর্তমান user-কে লগ আউট করান
auth()->user()
বর্তমান user-এর জন্য helper
Route::get('/home', $fn)->middleware('auth')
auth দিয়ে route সুরক্ষিত করুন
Gate::allows('update', $post)
authorization gate পরীক্ষা করুন
$user->can('update', $post)
policy-র বিপরীতে ability পরীক্ষা করুন
php artisan make:policy PostPolicy --model=Post
authorization policy তৈরি করুন
php artisan make:middleware EnsureTokenIsValid
middleware ক্লাস তৈরি করুন
Helper ও বিবিধ
12config('app.name')
config মান পড়ুন
env('APP_DEBUG', false)
environment variable পড়ুন
route('posts.show', $post)
নামযুক্ত route-এ URL তৈরি করুন
url('/dashboard')
fully qualified URL তৈরি করুন
asset('css/app.css')
public asset-এর জন্য URL
old('email')
পুরোনো flashed input নিন
now()->addDays(7)
বর্তমান Carbon timestamp
Str::slug('My Title')
String helper (slugify)
collect([1, 2, 3])->sum()
array থেকে collection তৈরি করুন
cache()->remember('key', 60, $fn)
একটি সময়ের জন্য মান cache করুন
dd($value)
মান dump করে die করুন
Storage::put('file.txt', $contents)
storage-এ ফাইল লিখুন
“:q”-এর সাথে কোনো এন্ট্রি মেলে না।
সাহায্য দরকার?
এই টুলে কোনো সমস্যা পেয়েছেন? আমাদের দলকে জানান।