مسیر راهی برای ایجاد URL درخواست برای برنامه شما است. این URL ها نیازی به مرتبط شدن با فایل های خاصی در یک وب سایت ندارند و برای انسان قابل خواندن و سئو هستند.
در لاراول مسیرهایی در داخل پوشه le ایجاد می شود routes
. آنها در فایل ایجاد می شوند web.php
برای وب سایت ها و در داخل api.php
برای API ها
اینها route
به گروه اختصاص داده شده اند middleware
شبکه، برجسته کردن وضعیت جلسه و امنیت CSRF
. مسیرهای داخل route/api.php
آنها بدون تابعیت هستند و به گروه میان افزار API اختصاص داده شده اند.
پیش نصبdefiLaravel nita دارای دو مسیر است، یکی برای وب و دیگری برای API. در اینجا مسیر ورود به وب به شکلی است web.php
:
Route::get('/', function () {
return view('welcome');
});
تمام مسیرهای لاراول هستند defiدر فایل های مسیر یافت شده در دایرکتوری مشخص شده است routes
. برنامه مدیریت مسیر، defiموجود در فایل App\Providers\RouteServiceProvider
، از ردیف کردن خودکار این فایل ها مراقبت می کند. پرونده route/web.php
defiمسیرهای رابط وب شما را مشخص می کند.
... ممکن defiمسیری را برای این اکشن کنترلر به صورت زیر مشخص کنید:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: روش Route::resource
تمام مسیرهای اساسی مورد نیاز برای یک برنامه کاربردی را تولید می کند و از طریق کلاس کنترلر مدیریت می شود.
هنگامی که یک درخواست با URI مسیر مشخص شده مطابقت دارد، متد فراخوانی می شود show
defiدر کنترلر مشخص شده است App\Http\ControllersUserController
، پاس پارامترهای مسیر به متد.
برای منابع، باید دو کار را روی برنامه انجام دهید فریم ورک Laravel. ابتدا باید یک مسیر منبع ایجاد کنید فریم ورک Laravel که مسیرهای درج، به روز رسانی، مشاهده و حذف را فراهم می کند. دوم، یک کنترل کننده منبع ایجاد کنید که روشی را برای درج، به روز رسانی، مشاهده و حذف ارائه می دهد.
پیش نصبdefiLaravel nita دارای دو مسیر است: یکی برای وب و دیگری برای API. در اینجا مسیر وب در web.php به نظر می رسد:
Route::get(‘/’, function () {
return view(‘welcome’);
});
میان افزار لاراول به عنوان پلی بین درخواست و واکنش عمل می کند. این می تواند نوعی جزء فیلتر باشد.
فریم ورک Laravel کار با a middleware که وظیفه تایید تایید یا عدم تایید اپلیکیشن کلاینت را دارد. در صورت تایید مشتری، مسیریابی به صفحه اصلی یا صفحه ورود به سیستم هدایت می شود.
route
کد قبلی defiیک مسیر به صفحه اصلی ظاهر می شود. هر زمان که این مسیر درخواستی دریافت کرد get
برای /
، را برمی گرداند view
welcome
.
تمام مسیرهای لاراول هستند defiدر فایل های شما مشخص شده است routing
، که در داخل دایرکتوری dei قرار دارند routes
. در نتیجه، l'AppProvidersRouteServiceProvider
برنامه این رکوردها را ردیف می کند. پرونده route/web.php
شامل مسیرهایی است که برای رابط وب شما مدیریت می شوند.
ساختار مسیر بسیار ساده است. فایل مناسب (`web.php
` o `api.php
` ) و خط کد را با `Route:: `
، به دنبال درخواستی که می خواهید به آن مسیر خاص اختصاص دهید و سپس عملکردی را که پس از درخواست انجام می شود را مشخص کنید.
لاراول روش های مسیر زیر را ارائه می دهد:
get
post
put
delete
patch
options
مسیرها هستند defiدر لاراول در کلاس Route با HTTP، مسیری که باید به آن پاسخ داده شود و بسته شدن آن، یا کنترلر است.
بیایید ببینیم چگونه می توانید مسیرهای خود را در لاراول ایجاد کنید.
اکنون می خواهم یک مسیر اساسی ایجاد کنم که جدول زمان های 2 را چاپ می کند.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
در کد بالا یک مسیر درخواست GET برای URL ایجاد کردم /table
، که جدول زمان های 2 را روی صفحه چاپ می کند.
حالا بیایید همان کد را ببینیم و عددی را که جدول ضرب را برای آن میخواهیم پارامتر کنیم:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
در کد 'number
' بین پرانتزها نشان دهنده پارامتر است، یعنی عددی که جدول ضرب برای آن محاسبه می شود. هر زمان که یک URL از نوع مشخص شده باشد /table/n
، سپس جدول اعداد چاپ می شود n
.
همچنین راهی برای ترکیب هر دو ویژگی در یک مسیر وجود دارد. لاراول ویژگی پارامترهای اختیاری را ارائه می دهد که به شما امکان می دهد پارامترهای اختیاری را با استفاده از علامت سوال "?" اضافه کنید. بعد از پارامتر اختیاری و مقدار پیشdefiشب بیایید مثال را ببینیم:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
در کد بالا، پارامتر مسیر خود را ایجاد کردیم، و شماره را اختیاری میکنیم، بنابراین اگر یک کاربر مسیر را نشان دهد/table
سپس جدول 2 را با تنظیم اولیه ایجاد می کندdefinita و اگر کاربر به «/table/{number}
سپس جدول اعداد 'number'
تولید خواهد شد.
در مثال قبلی ما یک مسیر برای تولید جدول ضرب ایجاد کردیم، اما چگونه میتوانیم اطمینان حاصل کنیم که پارامتر مسیر در واقع یک عدد است تا هنگام تولید جدول ضرب از خطا جلوگیری کنیم؟
در لاراول، شما می توانید defiبا استفاده از روش ` یک محدودیت در پارامتر مسیر ایجاد کنیدwhere
در نمونه مسیر. «where
` نام پارامتر و یک عبارت منظم برای آن پارامتر می گیرد.
حالا بیایید نمونه ای از یک محدودیت برای پارامتر ` خود را ببینیم{numero}
` برای اطمینان از اینکه فقط یک عدد به تابع ارسال می شود.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
در کد بالا از یک عبارت منظم برای شماره مسیر استفاده کردیم. حال، اگر کاربری سعی کند مسیر را به / جدول / شماره نمایش داده خواهد شد یک استثنا NotFoundHttpException.
در لاراول، شما می توانید definish یک روش کنترل کننده برای یک مسیر. یک متد کنترلر همه اقدامات را انجام می دهد definite هر بار که کاربر به مسیر دسترسی پیدا می کند.
با کد زیر متد کنترلر را اختصاص می دهیم 'functionname'
به یک مسیر:
Route:: get ( '/home' , 'YourController@functionname' ) ;
کد با شروع می شود `Route::`
و در نتیجه defiروش درخواست برای مسیر به پایان می رسد. متعاقبا، defiبا اضافه کردن علامت @ قبل از نام متد، مسیر و کنترلر خود را به همراه متد مشخص کنید.
در لاراول، شما می توانید defiبرای مسیر خود یک نام بیاورید این نام اغلب بسیار مفید است. به عنوان مثال، اگر می خواهید یک کاربر را از یک مکان به مکان دیگر هدایت کنید، نیازی به این کار ندارید defiURL تغییر مسیر کامل را تمام کنید. شما به سادگی می توانید نام آن را بدهید. تو می توانی defiنام مسیر را با استفاده از روش «نیت کنیدname
در مثال مسیر.
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
})->where('number', '[0-9]+')->name(‘table’);
اکنون می توانم آدرس اینترنتی این مسیر را از طریق کد زیر بازسازی کنم:
$url = route('table');
به طور مشابه، برای تغییر مسیر به این URL، نحو صحیح این خواهد بود:
return redirect()->route('table');
Route Groups
I Route Groups
، به معنای واقعی گروه های مسیر، یک ویژگی ضروری در لاراول است که به شما امکان گروه بندی مسیرها را می دهد. گروه های مسیر زمانی مفید هستند که می خواهید ویژگی ها را برای همه مسیرهای گروه بندی شده اعمال کنید. اگر از گروههای مسیر استفاده میکنید، لازم نیست ویژگیها را به صورت جداگانه برای هر مسیر اعمال کنید. این از تکراری شدن جلوگیری می کند. این به شما اجازه می دهد تا ویژگی هایی مانند middleware
o namespaces
، سنزا defiاین ویژگی ها را در هر مسیر مشخص کنید. این ویژگی های مشترک را می توان در قالب آرایه به عنوان اولین پارامتر به متد ارسال کرد Route::group
.
نحو یک گروه مسیر
Route::group([], callback);
فاخته []: آرایه ای است که به عنوان پارامتر اول به متد گروه ارسال می شود.
مثال از Route Group
به web.php
Route::group([], function()
{
Route::get('/first' , function()
{
echo "first way route" ;
});
Route::get('/second' , function()
{
echo "second way route" ;
});
Route::get('/third' , function()
{
echo "third way route" ;
});
});
در کد، defiبیایید روش را شروع کنیم گروه()، که شامل دو پارامتر، i.e array
e closure
. درون closure
، ما میتوانیم defiبدونید چند تا route
ما میخواهیم. در کد بالا داریم defiسه به پایان رسید route
.
اگر از طریق مرورگر به URL دسترسی پیدا کنیم localhost/myproject/first
سپس نفر اول دخالت می کند route
تایپ کردن در مرورگر first way route
.
با URL localhost/myproject/second
سپس دومی می آید route
تایپ کردن در مرورگر second way route
.
در حالی که با URL localhost/myproject/third
سپس سومی می آید route
تایپ کردن در مرورگر third way route
.
Route Groups
پیشوندهای route
آنها زمانی استفاده می شوند که بخواهیم یک ساختار URL مشترک برای چندگانه ارائه کنیم route
.
ما می توانیم برای همه مسیرها پیشوند را مشخص کنیم defiدرون گروه با استفاده از گزینه آرایه پیشوندی در Route Groups
.
مثال از web.php
Route::group(['prefix' => 'movie'], function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
کد شامل سه مسیر است که از آدرس های زیر قابل دسترسی است:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
همچنین میتوانیم میانافزار را به تمام مسیرهای درون یک گروه اختصاص دهیم. میان افزار باید باشد defiقبل از ایجاد گروه تمام شد. برای دیدن نحوه انجام این کار، مقاله ما را بخوانید میان افزار لاراول چگونه کار می کند.
Esempio:
Route::middleware(['age'])->group( function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
روش name
برای پیشوند هر نام استفاده می شود route
با یک رشته مشخص در روش name
، باید رشته را با یک کاراکتر انتهایی در پیشوند مشخص کنیم.
مثال web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
یک عمل جراحی چشم با استفاده از نمایشگر تجاری Apple Vision Pro در پلی کلینیک کاتانیا انجام شد…
توسعه مهارت های حرکتی ظریف از طریق رنگ آمیزی، کودکان را برای مهارت های پیچیده تری مانند نوشتن آماده می کند. رنگ کردن…
بخش دریایی یک قدرت واقعی اقتصادی جهانی است که به سمت یک بازار 150 میلیاردی حرکت کرده است.
دوشنبه گذشته، فایننشال تایمز از قراردادی با OpenAI خبر داد. FT مجوز روزنامه نگاری در سطح جهانی خود را صادر می کند…