چاپ / PDF
امتیاز
(8 )

Route Model Binding در لاراول و لینکهای SEO Friendly

توضیحات دوره

Route Model Binding در لاراول و لینکهای SEO Friendly

Route Model Binding مکانیزمی هست که در لاراول استفاده میشه و شما به راحتی بدون نوشتن یک خط query و تنها با ارسال id مطلب خود میتوانید یک آبجکت از مطلب مورد نظر دریافت و در view خودتون نمایش بدید.فرض کنید که شما لیستی از مطالب در سایت خودتون دارید نمایش میدید ، به صورت پیشرفض زمانی که در لاراول میخواهید که تیتر مطلب به صورت لینک دار باشه از یک Route به صورت زیر استفاده میکنید:

Route::get('/articles/{article}', 'ArticleController@show')->name('show');

با ساختن این Route لینک مطلب شما به عنوان مثال به شکل زیر میشه:

http://www.alefyar.com/articles/1

و وقتی این لینک در آدرس بار باز میشه ما میتونیم دیتای کامل مطلب با ID شماره 1 رو در متد show و در کنترل ArticleConroller دریافت کنیم.به این مکانیزم Route Model Binding میگیم که البته باید متد show ما هم به شکل زیر تعریف شده باشه:

    public function show(Article $article)
    {
        return $article;
    }

نکته ی مهم: تا به اینجا متوجه شدیم که برای ایجاد یک آبجکت از اطلاعات یک مطلب حتما و حتما باید ID اون مطلب رو ارسال کنیم به آدرس بار!

این دوره رایگان است ، اما در صورتی که مایل به حمایت از ما هستید میتوانید ما را با هزینه ی یک فنجان قهوه دلگرم نمایید

حمایت میکنم

وقتی شما ID مطلب رو ارسال میکنید توی آدرس بار  و مطلب رو از دیتابیس میخونید و نمایش میدید مشکلی در عملکرد این سیستم وجود نداره اما از نظر سئو و کسب رتبه ی بهتر در گوگل ، SEF یا همون Search Engin Friendly بودن مهم هست ،برای تمام سایتها این موضوع مهمی هست که بجای ID از slug یا همون نام مستعار مطالبشون بتونن توی آدرس بار استفاده کنن و دیتا رو از دیتابیس بخونن و نمایش بدن !

تو این آموزش ما هم قرار هست که ID رو برداریم و بجاش از slug استفاده کنیم پس شما باید توی table مطالب خودتون در دیتابیس یک فیلد slug داشته باشید که بتونید اینکارو انجام بدید.

انواع Route Model Binding

توی لاراول ما دو جور Route Model Binding داریم.یکیش implicit binding هست و اون یکی explicit binding هست و من هر دو رو توضیح میدم که چطوری ما در هر دو روش بتونیم slug رو جایگزین id کنیم.

implicit route model binding

توی این روش که خیلی خیلی ساده است تنها کافی هست که متد getRouteKeyName رو توی model خودمون قرار بدیم و به model بگیم بجای اینکه از id به عنوان کلید استفاده کنه ، از slug به عنوان کلید استفاده کنه و اطلاعات رو bind کنه:

public function getRouteKeyName() 
{
 return 'slug'; } 
}

explicit route model binding

تو این روش هم میتونیم متد resolveRouteBinding بجای متد قبلی در model خودمون استفاده کنیم که تفاوت در نوع اجرای این متد هست . توی متد resolveRouteBinding ما یک کوئری اجرا میکنیم ولی در متد قبلی تنها یک key یا کلید رو تغییر دادیم:

public function resolveRouteBinding($value) {
 return $this->where('slug', $value)->first() ?? abort(404); 
}

همونطور که دیدید به راحتی امکان تغییر id و استفاده از slug در ساخت لینک مطالب وجود دارد.این ویژگی به ما کمک میکنه که لینکهامون از نظر سئو بهتر باشه و موتورهای جستجوگر گوگل و غیره بهتر لینکهای ما رو ایندکس کنند و همینطور توی نتایج جستجو لینک زیباتری داشته باشیم.پس توصیه میکنم که حتما اینکارو برای سایتهای خودتون انجام بدید .

مطلب پیشنهادی: آموزش رایگان لاراول

ویدیوی آموزشی این مطلب هم کاملتر از خود مطلب تهیه شده! پس پیشنهاد دومم اینه که ویدیوی آموزشی مطلب رو هم ببینید تا بهتر متوجه این آموزش بشید.

این دوره رایگان است ، اما در صورتی که مایل به حمایت از ما هستید میتوانید ما را با هزینه ی یک فنجان قهوه دلگرم نمایید

حمایت میکنم

سرفصل های دوره

Route Model Binding در لاراول و لینکهای SEO Friendly امتیاز 3.9 5 بهترین امتیاز 8 رای داده شده از