روشهای زیادی برای آدرس دهی در لاراول می توان استفاده کرد که ما به بعضی از آنها اشاره خواهیم کرد:
action('UserController@profile', ['id' => 1])
// http://site.dev/user/profile/1
در این روش با صدا زدن کنترلر و متد داخل آن و ارسال پارامتر مورد نظر URL خود را می سازیم.
معایب استفاده از این روش:
استفاده از Laravel Route Helper
route('user.profile', ['id' => 1])
// http://site.dev/user/profile/1
مزایا: در این روش با تغییر متد و کنترلر تغییری در آدرس دهی ایجاد نمی شود.
معایب:شما باید برای هر آدرس نام تعریف کنید.
url('user/profile', [1])
// http://site.dev/user/profile/1
در این روش شما بصورت اتوماتیک نام دومینی (full domain name) که در config/app.php ایجاد کردید استفاده می شود.
مزایا:دیگر نیاز نیست برای هر کنترلر route name تعریف کنید.
معایب:اگر route را تغییر دهید مجبوری بصورت دستی در همه سیستم آدرسهای مربوطه را تغییر دهید.
href="/user/profile/false" // href="/user/profile/1"
مزایا: در این روش با تغییر متد و کنترلر تغییری در آدرس دهی ایجاد نمی شود.
معایب: شما دیگر نام دومین را ندارید و مجبورید بسته به هر آدرس subdirectory را مشخص کنید.
شما در این روش با استفاده از model می توانید uri خود را تولید کنید به مثال زیر توجه کنید:
public function getUriAttribute($_)
{
return $this->created_at->format('Y/m/').$this->slug.'/';
}
و در blade بصورت زیر استفاده کنید:
a href="[[$post_uri ]]">[[ $post_title ]]/a