آموزش Routing در لاراول پارت 1
سیستم Routing لاراول یکی از مهم ترین مواردی هست که شما باید یاد بگیرید. ما در این مقاله قراره یک بریم یک آشنایی با Routing در لاراول پیدا کنیم.
پوشه پیشفرض روت ها در لاراول کجاست؟
در لاراول پوشه پیشفرض برای نوشتن روت ها routes
نام داره که حاوی چندین فایل هست که در پایین توضیح خواهیم داد هر کدوم چه کاری انجام میده.
- web: نوشتن روت هایی که در مروگر قابل مشاهده هست مثل همین صفحه.
- api: نوشتن روت های API.
- console: حاوی ران کردن Task Scheduling و جاب ها.
فعال سازی روت های API در لاراول
در لاراول 11 به بعد برای نوشتن روت های api نیاز دارید که فعالش کنید، فقط کافیه دستور زیر بزنید:
php artisan install:api
بعد از اجرا این دستور، در پوشه routes
یک فایل به نام api.php
ساخته میشه همینطور در فایل bootstrap/app.php
روت api رجسیتر میشه.
->withRouting(
api: __DIR__.'/../routes/api.php',
apiPrefix: 'api/admin',
// ...
)
کار با انواع روت در لاراول
در لاراول به راحتی میتونید یک روت با متد get بسازید:
Route::get('uri', $callback);
در پارامتر اول، یک uri یا همون مسیری که برای روت میخواید تعریف کنید وارد میکنید و در پارامتر دوم هم اون کنترلر یا callback که نیاز دارید پاس میدید. مثل:
همینطور شما میتونید به راحتی با متد های زیر انواع روت در لاراول بسازید:
Route::post('uri', $callback);
Route::put('uri', $callback);
Route::patch('uri', $callback);
Route::delete('uri', $callback);
Dependency Injection در روت های لاراول
در لاراول شما میتونید از قابلیت Service Container در روت ها استفاده کنید. در مثال زیر شما به راحتی به کلاس Request دسترسی دارید بدون نیاز به ساخت شی ازش:
use IlluminateHttpRequest;
Route::get('/users', function (Request $request) {
// ...
});
CSRF Protection
زمانی که از روت های POST، PATCH، PUT و DELETE استفاده میکنید، لاراول به صورت اتوماتیک از CSRF Token مراقبت میکنید. در فرم ها برای اینکه لاراول ارور نده میتونید از @csrf
استفاده کنید:
<form method="POST" action="...">
@csrf
...
</form>
روت های ریدایرکت (Redirect) در لاراول
Route::redirect('...', '...');
Route::permanentRedirect('...', '...');
روت های ویو (View Route)
شما میتونید با متد view
به صورت مستفیم یک ویو نشون بدید و نیازی به کنترلر ندارید:
Route::view('/uri', 'view');
Route::view('/uri', 'view', ['name' => 'Milwad']);
0 نظر