آموزش لاراول -Laravel Route Parameters

  • خانه
  • آموزش لاراول -Laravel Route Parameters
Image تحقیقات

آموزش لاراول -Laravel Route Parameters

با سلام خدمت شما دوستان

امروز میخوایم در ادامه مسیریابی و Routing ، بیشتر بپردازیم به پارامترهای مسیریابی در فریم ورک لاراول.

Route Parameters

ما در فریم ورک لاارول می توانیم ادرس هارو به صورت پارامتری هم تنظیم و ست نماییم و کمک زیادی می کنه مثلا برای مواقعی که میخواهین دسته بندی خاصی ار مطالب رو نشون بدین یا ID خاصی رو از کاربر بگیرین و اطلاعاتش رو نمایش بدین. حالا امروز باهم چند مثال رو بررسی می کنیم تا کامل جا بیوفته این قضیه :

 

Getting a Basic Route Parameter

در مثال زیر ما یک مسیر( Route ) ایجاد می کنیم که پارامتر هم داشته باشه :

	// get the cuteness level of a puppy
	Route::get('puppies/{cutelevel}', function($cutelevel) 
	{
		return 'This puppy is an absolute ' . $cutelevel . ' out of ' . $cutelevel;
	});

	// OR

	// get the parameter of name
	Route::get('users/{name}', function($name) 
	{
		return 'User Name is ' . $name;
	});

با استفاده از  {cutelevel} پارامتر رو دریافت می کنیم و در متغیری به نام $cutelevel ریخته و می تونیم از مقدار این متغیر در هر جایی استفاده نماییم

حالا اگر در مرورگر http://example.com/puppies/5 را تایپ نمایید عبارت This puppy is an absolute 5 out of 5. ظاهر خواهد شد یا مثلا اگر  http://example.com/users/chris را در مرورگر تایپ نماییم عبارت User Name is Chris. ظاهر خواهد شد.

 

Route Parameter Defaults

 ما می تونیم به پارامتر خودمون مقدار پیشفرض رو قرار بدیم مثلا اگر کاربر دسته بندی خاصی رو وارد که که پست های اون دسته بندی رو بهشون نشون بدیم وگرنه خودمون پست های یک دسته بندی پیش فرض رو به کاربر نمایش دهیم :

	// optional category with a default
	Route::get('gallery/{category?}', function($category = 'sunsets')
	{
		return 'This is the ' . $category . ' category.';
	});

 خب ابتدا داخل کروشه علامت سوال قرار دادیم به این صورت {category?} و پارامتر تابع رو به این صورت $category = ‘sunsets’ مقدار دهی کردیم .

حالا برای تست شما ادرس http://example.com/gallery را در مرورگر وارد می کنیم و عبارت This is the sunsets category ظاهر می شود و یا با وارد کردن ادرس http://example.com/gallery/puppies مقدار This is the puppies category ظاهر خواهد شد.

 

Using Optional Route Parameters

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

// optional category
	=Route::get('gallery/{category?}', function($category=NULL) 
	{
		// if category is set, show the category
		// if not, then show all
		if ($category)
			return 'This is the ' . $category . ' section.';
		else 
			return 'These are all the photos.';

	});

همان طور که مشاهده می کنید پارامتر تابع رو با مقدار NULL مقدار دهی کردیم. و در ادامه با دستور IF چک کردیم که آیا پارامتر مقدار دارد (پارامتر واردشده) یا خیر.

در آخری مثال من میخوام وقتی کاربر دسته بندی رو وارد کرد اطلاعات اون رو از دستابس استخراج کنم.به مثال زیر توجه کنید :

	// get the category of gallery for viewing
	Route::get('gallery/{category?}', function($category) {
		
		// get the gallery stuff for the category
		$gallery = Gallery::where('category', '=', $category);

		// return a view and send the gallery data to the view
		return View::make('gallery')
			->with('gallery', $gallery);
	});

در مثال بالا ، دسته بندی گرفته شده را در دیتابیس با استفاده از یک دستوری مانند query ولی با زبان فریم ورک Laravel جستجو کرده و رکوردهای مورد نظر را در متغیر gallery$ ذخیره می کنیم و در انتها اون رو به سمت View ارسال خواهیم کرد.

 دوستان توجه کنید جایی که گفتیم برای تست مثلا ادرس http://example.com/gallery را وارد نمایید در سیستم لوکال خودتون باید به صورت localhost/gallery وارد شود. 

خب این جلسه هم به اتمام رسید..امیدوارم همتون موفق و پیروز باشید.