لاره ستاسو د غوښتنلیک لپاره د غوښتنې URL رامینځته کولو لاره ده. دا URLs ته اړتیا نلري چې په ویب پاڼه کې د ځانګړو فایلونو سره تړاو ولري او د انسان لوستلو وړ او SEO دوستانه دي.
په لارویل کې، لارې د فولډر دننه رامینځته کیږي routes
. دوی په فایل کې رامینځته شوي web.php
د ویب پاڼو لپاره، او دننه api.php
د APIs لپاره.
دا route
ډلې ته ګمارل شوي دي middleware
شبکه، د ناستې وضعیت او امنیت روښانه کول CSRF
. په لاره کې route/api.php
دوی بې ریاسته دي او د API منځني ګروپ ته ګمارل شوي.
د مخکې نصبdefiLaravel nita د دوو لارو سره راځي، یو د ویب لپاره او بل د API لپاره. دا هغه څه دي چې د ویب لپاره لاره ورته ښکاري web.php
:
Route::get('/', function () {
return view('welcome');
});
د لارویل ټولې لارې دي definiti د لار فایلونو کې چې په لارښود کې موقعیت لري 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 Middleware د غوښتنې او غبرګون تر منځ د پل په توګه کار کوي. دا د فلټر برخې یو ډول کیدی شي.
Laravel a سره کار مینځور کوم چې د دې تصدیق کولو دنده لري چې ایا د پیرودونکي غوښتنلیک تایید شوی یا نه. په هغه صورت کې چې پیرودونکي تایید شوي وي، بیا د کور پاڼې یا د ننوتلو پاڼې ته الرښوونه کوي.
route
پخوانی کوډ defiد کور پاڼې ته لاره نښی. هرکله چې دا لاره غوښتنه ترلاسه کړي get
په سلو کې /
، بیرته به راګرځي view
welcome
.
د لارویل ټولې لارې دي definiti ستاسو په routing
، کوم چې د ډایرکټر dei دننه موقعیت لري routes
. په پایله کې، l'AppProvidersRouteServiceProvider
د غوښتنلیک لیکونه دا ریکارډونه پورته کوي. دوسيه route/web.php
هغه لارې لري چې ستاسو د ویب انٹرفیس لپاره اداره کیږي.
د لارې جوړښت خورا ساده دی. مناسب فایل خلاص کړئ (`web.php
` o `api.php
` ) او د کوډ لاین ورسره پیل کړئ `Route:: `
، د هغه غوښتنې په تعقیب چې تاسو غواړئ هغه ځانګړي لارې ته وټاکئ او بیا هغه فعالیت مشخص کړئ چې د غوښتنې وروسته به ترسره شي.
Laravel لاندې لارې میتودونه وړاندې کوي:
get
post
put
delete
patch
options
لارې دي defiپه لاراول کې د HTTP سره د روټ ټولګي دننه، د ځواب ورکولو لاره او تړل، یا کنټرولر.
راځئ وګورو چې تاسو څنګه کولی شئ په لارویل کې خپلې لارې جوړې کړئ.
اوس زه یو بنسټیز لاره رامینځته کوم چې د 2 وخت جدول به چاپ کړي.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
په پورته کوډ کې، ما د URL لپاره د GET غوښتنې لاره جوړه کړه /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 جدول رامینځته کړيdefinite او که یو کارن `` ته لاره هواره کړي/table/{number}
بیا د شمیر میز 'number'
تولید به شي.
په تیرو مثال کې موږ د ضرب جدول رامینځته کولو لپاره لاره رامینځته کړې ، مګر څنګه کولی شو ډاډ ترلاسه کړو چې د لارې پیرامیټر واقعیا یو شمیر دی ، ترڅو د ضرب جدول رامینځته کولو کې د غلطیو څخه مخنیوی وشي؟
په Laravel کې، تاسو کولی شئ 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 استثنا.
په Laravel کې، تاسو کولی شئ defiد لارې لپاره د کنټرولر طریقه غوره کړئ. د کنټرولر طریقه ټولې کړنې ترسره کوي definite هرکله چې یو کاروونکي لارې ته لاسرسی ومومي.
د لاندې کوډ سره موږ د کنټرولر میتود ګمارو 'functionname'
یوې لارې ته:
Route:: get ( '/home' , 'YourController@functionname' ) ;
کوډ سره پیل کیږي `Route::`
او له همدې کبله defiد لارې لپاره د غوښتنې طریقه نیش کوي. ورپسې، defiد میتود نوم دمخه د @ سمبول په اضافه کولو سره د میتود سره خپله لاره او کنټرولر پای ته ورسوي.
په Laravel کې، تاسو کولی شئ defiد خپلې لارې لپاره نوم ولیکئ. دا نوم اکثرا ډیر ګټور دی. د مثال په توګه، که تاسو غواړئ یو کارن له یو ځای څخه بل ځای ته واستوئ، تاسو اړتیا نلرئ defiبشپړ ریډیریټ URL nish. تاسو کولی شئ یوازې د هغه نوم ورکړئ. تاسو یې کولای شئ defiد لارې نوم د ` میتود په کارولو سره nish کړئ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راځئ چې طریقه پیدا کړو ډله()، کوم چې دوه پیرامیټونه لري، د بیلګې په توګه 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
دوی کارول کیږي کله چې موږ غواړو د یو آر ایل جوړښت چمتو کړو چې څو ته عام وي route
.
موږ کولی شو د ټولو لارو لپاره مخکینی مشخص کړو defiپه ګروپ کې د مخکینۍ سرې اختیار په کارولو سره nites 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";
});
});
کوډ درې لارې لري چې د لاندې URLs څخه لاسرسی کیدی شي:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
موږ کولی شو د یوې ډلې دننه ټولو لارو ته مینځنی وسایط هم وټاکو. منځنی توکي باید وي defiد ګروپ جوړولو دمخه پای ته ورسید. د دې کولو څرنګوالي وګورئ، زموږ مقاله ولولئ Laravel Middleware دا څنګه کار کوي.
مثال:
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
سمندري سکتور یو ریښتینی نړیوال اقتصادي ځواک دی ، کوم چې د 150 ملیارد بازار په لور حرکت کړی ...
تیره دوشنبه، فایننشل ټایمز د OpenAI سره یوه معامله اعلان کړه. FT د نړۍ په کچه ژورنالیزم جواز ورکوي ...
ملیونونه خلک د سټیمینګ خدماتو لپاره تادیه کوي ، د میاشتنۍ ګډون فیس ورکوي. دا عام نظر دی چې تاسو…
د Veeam لخوا Coveware به د سایبر غصب پیښو غبرګون خدماتو چمتو کولو ته دوام ورکړي. Coveware به د عدلي او درملنې وړتیاوې وړاندې کړي ...