در نوشته  گفتیم که واپسین کد درون متد ()updateUser از کلاس کنترل گر UserController برابر با مقدار برگشتی متد ()redirect است. انگیزه آن است که از برگه وب کنونی به برگه وب دیگری جابجا شویم که این جابجایی می تواند همراه با فرستادن داده یا بدون داده باشد. نخست متد ()url انجام می شود و نشانی URL مسیر فرستاده شده به آن را برگشت می دهد. رشته user به متد ()url فرستاده شده است که برابر است با مسیری که درون فایل web.php نشان داده بودیم.

انگیزه از کد بالا این است که پس از بروز رسانی داده ها در متد ()updateUser می خواهیم به برگه http://localhost:8000/user برگردیم که نشانی URL برای مسیر user در فایل web.php است. در کدهای زیر همان به جای به کار بردن نام مسیر (Route) به همراه متد ()url می خواهیم نشانی URL را بدست آوریم و سپس با کمک متد ()redirect از نشانی کنونی به نشانی فرستاده شده به آن جابجا شویم.

با فرض اینکه نام دامنه http://example.com باشد، نخستین کد بالا به نشانی URL مسیر index یا نشانی http://example.com/index جابجا می شود. دومین کد به نشانی مسیر auth/login یا همان برگه ورود به سایت به نشانی http://example.com/auth/login جابجا می شود. سومین کد چون هیچ ورودی به متد ()redirect فرستاده نشده است، پس باید به نشانی ریشه یا همان برگه خانگی به نشانی http://example.com جابجا شود.

جابجایی با نام مسیر با ()route 

در کدهای بالا یا با متد ()url یا بدون آن، از نام مسیرهای درون فایل web.php برای جابجایی به نشانی URL کمک گرفتیم. متد دیگری به نام ()route است که می توانیم همانند کد زیر نام یک مسیر درون web.php را به آن بفرستیم. در کد زیر می خواهیم واپسین کد درون متد ()updateUser را با متد ()route بازنویسی کنیم.

مسیرهای با نام و متد ()name در لاراول

در نوشته لاراول – نوشتن Route درباره چگونگی نوشتن مسیرها گفتیم و چیزی که ماند، مسیرهای با نام (Named Routes) بود که می توانیم یک نام را به یک مسیر بدهیم و سپس با نام به آن مسیر اشاره کنیم. از این نام می توانیم برای پدید آورن نشانی URL (با متد ()url) یا برای انجام Redirection کمک بگیریم. کد زیر یک مسیر از گونه متد ()get از کلاس Route را درون فایل web.php پدید می آورد که به گونه زنجیروار متد ()name به پایان شناساندن مسیر افزوده می شود.

بنابراین همانند کد زیر از نام مسیر که در کد بالا آن را بدست متد ()name برابر با profile نشان دادیم، می توانیم برای رفتن به مسیر مربوط به آن کمک بگیریم. همچنین در دمین کد زیر نمونه دیگری از نامگذازی مسیرها نشان داده شده است که در آن به جای تابع بی نام، کلاس کنترل گر و متد آن به کار رفته است.

پیاده سازی بازگشت به برگه پیشین با متد ()back

در لاراول می توانیم همانند کد زیر متد ()back می توانیم به گونه خودکار به برگه پیشین جابجا شویم. کد زیر فرض شده است که واپسین کد درون یک متد کلاس کنترل گر است که پیش روی عبارت return نوشته شده است. همچنین می توانید آن را درون فایل نما و به عنوان مقدار برای ویژگی href از تگ a به کار ببرید.

در واقع در کد بالا، لاراول آیتمی را با کلیدی به نام error درون Session Flash Data قرار می دهد. بنابراین نام کلید error و مقدار آن رشته ای است که در کد بالا به آرگومان دوم فرستاده شده است. برای نمایش مقدار کلید erro در فایل نما (View) یا برای به کاربردن آن در یک متد کنترل گر باید متد ()session را به گونه زیر به کار ببرید.

فرستادن داده همراه با جابجایی میان URL

همانگونه که گفتیم می توانیم میان کنترل گر و فایل نما داده ها را رَد و بدل کنیم، همچنین می توانیم در جابجایی میان URL ها نیز می توانیم داده ها را رد و بدل کنیم. در کد زیر بدست متد ()with، می خواهیم داده رشته ای را در غالب متغیری به نام error به برگه پیشین با کمک متد ()back بفرستیم.

با جابجایی میان URL با کنترل گر

در نوشته های پیشین متدی به نام ()action را آموزش دادیم که آن را برای پدید آوردن نشانی URL بدست نام کلاس کنترل گر و متد آن، به کار بردیم. مقدار برگشتی این متد را برای مقدار ویژگی action در تگ form به کار بردیم. در کد زیر گفته ایم که می خواهیم به متد ()index از کلاس کنترل گر ()UserController جابجا شویم.

اگر به یاد داشتید، می دانید که شاید متدهای کلاس کنترل گر ورودی هایی را دریافت می کردند و ما می توانسیم به گونه یک آرایه، این ورودی ها (یا تک ورودی) را در آرگومان دوم متد ()action نشان دهیم. در کد زیر در هنگام جابجایی، مقدار 1 برای آرگومان id$ به متد ()profile از کلاس کنترل گر UserController فرستاده می شود.