راستہ آپ کی درخواست کے لیے درخواست URL بنانے کا ایک طریقہ ہے۔ ان URLs کو کسی ویب سائٹ پر مخصوص فائلوں کے ساتھ منسلک ہونے کی ضرورت نہیں ہے اور یہ انسانی پڑھنے کے قابل اور SEO دوستانہ ہیں۔
Laravel میں، le فولڈر کے اندر راستے بنائے جاتے ہیں۔ routes
. وہ فائل میں بنائے گئے ہیں۔ web.php
ویب سائٹس کے لیے، اور اندر api.php
APIs کے لیے۔
یہ route
گروپ کو تفویض کیا جاتا ہے۔ middleware
نیٹ ورک، سیشن کی حیثیت اور سیکورٹی کو نمایاں کرنا CSRF
. اندر جانے والے راستے route/api.php
وہ بے وطن ہیں اور API مڈل ویئر گروپ کو تفویض کیے گئے ہیں۔
پری انسٹالیشنdefiLaravel nita دو راستے کے ساتھ آتا ہے، ایک ویب کے لیے اور دوسرا API کے لیے۔ ویب کا راستہ ایسا ہی لگتا ہے۔ web.php
:
Route::get('/', function () {
return view('welcome');
});
Laravel کے تمام راستے ہیں۔ definiti ڈائریکٹری کے اندر موجود پاتھ فائلوں میں routes
. روٹ مینجمنٹ ایپلی کیشن، defiفائل میں nished 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 کے ساتھ کام کرنا مڈل ویئر جس کا کام اس بات کی تصدیق کرنا ہے کہ آیا کلائنٹ کی درخواست کی تصدیق ہوئی ہے یا نہیں۔ اگر کلائنٹ کی تصدیق ہو جاتی ہے، تو روٹنگ ہوم پیج یا لاگ ان پیج پر ری ڈائریکٹ ہو جاتی ہے۔
route
پچھلا کوڈ defiہوم پیج پر جانے کا راستہ بتاتا ہے۔ جب بھی اس راستے کو کوئی درخواست ملتی ہے۔ get
فی /
، واپس کرے گا view
welcome
.
Laravel کے تمام راستے ہیں۔ defiنیتی آپ میں routing
، جو ڈائرکٹری dei کے اندر واقع ہیں۔ routes
. نتیجتاً، l'AppProvidersRouteServiceProvider
درخواست کی لائنز ان ریکارڈوں کو۔ فائل route/web.php
ان راستوں پر مشتمل ہے جو آپ کے ویب انٹرفیس کے لیے منظم ہیں۔
راستے کا ڈھانچہ بہت آسان ہے۔ مناسب فائل کھولیں (`web.php
` o `api.php
` ) اور اس کے ساتھ کوڈ کی لائن شروع کریں۔ `Route:: `
، اس درخواست کے بعد آپ اس مخصوص راستے کو تفویض کرنا چاہتے ہیں اور پھر اس فنکشن کی وضاحت کریں جو درخواست کے بعد انجام دیا جائے گا۔
Laravel مندرجہ ذیل راستے کے طریقے پیش کرتا ہے:
get
post
put
delete
patch
options
راستے ہیں۔ defiلاراویل میں روٹ کلاس کے اندر HTTP کے ساتھ، جواب دینے کا راستہ اور بند، یا کنٹرولر۔
آئیے دیکھتے ہیں کہ آپ Laravel میں اپنے راستے کیسے بنا سکتے ہیں۔
اب میں ایک بنیادی راستہ بنانے جا رہا ہوں جو 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
.
ایک راستے میں دونوں خصوصیات کو یکجا کرنے کا طریقہ بھی ہے۔ Laravel اختیاری پیرامیٹرز کی خصوصیت پیش کرتا ہے جو آپ کو سوالیہ نشان '؟' کا استعمال کرتے ہوئے اختیاری پیرامیٹرز شامل کرنے کی اجازت دیتا ہے۔ اختیاری پیرامیٹر اور پری ویلیو کے بعد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
روٹ مثال پر۔ The `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` طریقہ کا استعمال کرتے ہوئے راستے کا نام نِش کریں۔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
.
یو آر ایل کے ساتھ localhost/myproject/second
پھر دوسرا آتا ہے route
براؤزر میں ٹائپ کرنا second way route
.
جبکہ یو آر ایل کے ساتھ 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";
});
});
کوڈ میں تین راستے ہیں جن تک درج ذیل URLs سے رسائی حاصل کی جا سکتی ہے۔
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
ہم گروپ کے اندر تمام راستوں پر مڈل ویئر بھی تفویض کر سکتے ہیں۔ مڈل ویئر ہونا چاہیے۔ defiگروپ بنانے سے پہلے ختم۔ یہ دیکھنے کے لئے کہ یہ کیسے کریں، ہمارا مضمون پڑھیں لاریول مڈل ویئر یہ کیسے کام کرتا ہے۔.
مثال:
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
سمارٹ لاک مارکیٹ کی اصطلاح پیداوار، تقسیم اور استعمال کے ارد گرد کی صنعت اور ماحولیاتی نظام سے مراد ہے…
سافٹ ویئر انجینئرنگ میں، ڈیزائن پیٹرن ان مسائل کا بہترین حل ہیں جو عام طور پر سافٹ ویئر ڈیزائن میں پائے جاتے ہیں۔ میں جیسا ہوں…
صنعتی مارکنگ ایک وسیع اصطلاح ہے جس میں کئی تکنیکوں کو شامل کیا جاتا ہے جو کسی کی سطح پر مستقل نشانات بنانے کے لیے استعمال ہوتی ہیں…
درج ذیل سادہ ایکسل میکرو مثالیں VBA کا تخمینہ پڑھنے کے وقت کا استعمال کرتے ہوئے لکھی گئیں: 3 منٹ مثال…