TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #276 269
فصل یک - Routing

بخش دوم - معرفی متد های روتینگ - قسمت دوم


در ادامه معرفی متد های Routing به 9 متد دیگر از فساد Route می پردازیم. این متد ها برای اعتبارسنجی پارامتر های داینامیک دریافتی از URL، کاربرد دارند.
در ادامه هر یک از این متد ها را با مثال معرفی میکنیم:

1- متد where به شما امکان می‌دهد تا یک محدودیت سفارشی برای پارامترهای مسیر تعیین کنید. این محدودیت‌ها بر اساس یک الگوی منظم (regex) تعریف می‌شوند. به عنوان مثال، می‌توانید تعیین کنید که پارامتر id باید عددی باشد.
Route::get('user/{id}', function ($id) {
return "User ID: $id";
})->where('id', '[0-9]+');

در این مثال، پارامتر id باید فقط شامل اعداد باشد، در غیر این صورت مسیر مطابقت نمی‌کند.

2- متد whereAlpha تضمین می‌کند که پارامترهای مشخص شده فقط حروف الفبایی باشند. یعنی پارامتر مورد نظر باید فقط شامل حروف باشد و هیچ عدد یا کاراکتر دیگری نباید در آن باشد.
Route::get('user/{name}', function ($name) {
return "User Name: $name";
})->whereAlpha('name');

در این مثال، پارامتر name باید فقط شامل حروف باشد، در غیر این صورت مسیر مطابقت نمی‌کند.

3- متد whereAlphaNumeric پارامترها را محدود به حروف و اعداد می‌کند. یعنی پارامتر مورد نظر می‌تواند شامل حروف و اعداد باشد ولی هیچ کاراکتر خاصی نباید در آن باشد.
Route::get('product/{code}', function ($code) {
return "Product Code: $code";
})->whereAlphaNumeric('code');

در این مثال، پارامتر code باید فقط شامل حروف و اعداد باشد، در غیر این صورت مسیر مطابقت نمی‌کند.

4- متد whereNumber پارامترها را فقط به اعداد محدود می‌کند. یعنی پارامتر مورد نظر باید فقط شامل اعداد باشد و هیچ حرف یا کاراکتر دیگری نباید در آن باشد.
Route::get('order/{id}', function ($id) {
return "Order ID: $id";
})->whereNumber('id');

در این مثال، پارامتر id باید فقط شامل اعداد باشد، در غیر این صورت مسیر مطابقت نمی‌کند.

5- متد whereUlid پارامترها را محدود به ULID (Unique Lexicographically Sortable Identifier) می‌کند که یک نوع شناسه منحصر به فرد و مرتب شونده است.
Route::get('item/{ulid}', function ($ulid) {
return "Item ULID: $ulid";
})->whereUlid('ulid');

در این مثال، پارامتر ulid باید یک ULID معتبر باشد، در غیر این صورت مسیر مطابقت نمی‌کند.

6- متد whereUuid پارامترها را محدود به UUID (Universally Unique Identifier) می‌کند.
Route::get('user/{uuid}', function ($uuid) {
return "User UUID: $uuid";
})->whereUuid('uuid');

در این مثال، پارامتر uuid باید یک UUID معتبر باشد، در غیر این صورت مسیر مطابقت نمی‌کند.

7- متد whereIn تضمین می‌کند که پارامترها یکی از مقادیر تعیین شده باشند. یعنی پارامتر مورد نظر باید یکی از مقادیر مشخص شده در آرایه باشد.
Route::get('status/{state}', function ($state) {
return "Status: $state";
})->whereIn('state', ['active', 'inactive', 'pending']);

در این مثال، پارامتر state باید یکی از مقادیر active، inactive یا pending باشد، در غیر این صورت مسیر مطابقت نمی‌کند.

8- متد pattern برای تعیین یک الگوی پیش‌فرض برای پارامترهای مسیر بکار می رود. این متد برای تنظیم الگوها به طور کلی برای تمام مسیرها در برنامه استفاده می‌شود.
Route::pattern('slug', '[A-Za-z0-9-]+');

Route::get('post/{slug}', function ($slug) {
return "Post Slug: $slug";
});

این متد یک regex را به طور کلی برای تمامی پارامتر ها با نام slug تعیین میکند. به عبارتی در تمام مسیر ها اعمال می شود و محدود به یک مسیر نیست.

9- متد patterns مشابه متد pattern است با این تفاوت که می توانید چندین الگوی سفارشی برای چندین پارامتر به طور همزمان تعیین کنید.
Route::patterns([
'id' => '[0-9]+',
'slug' => '[A-Za-z0-9-]+',
]);

Route::get('article/{id}/{slug}', function ($id, $slug) {
return "Article ID: $id, Slug: $slug";
});

در مثال بالا یک regex برای پارامتر های id و slug تعریف شده که در تمام مسیر ها اعمال می شود و محدود به یک مسیر نیست.

این روش‌ها به شما امکان می‌دهند تا الگوهای پیش‌فرض برای پارامترهای مسیرها را تعیین کنید تا اطمینان حاصل شود که درخواست‌ها به درستی پردازش می‌شوند و از داده‌های نامعتبر جلوگیری شود.

#laravel #فصل_۱
@AmirhDeveloper
.
  • ❤ 1
  • 🔥 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →