نحوه ریدایرکت در لاراول به زبان ساده
در این قسمت از آموزش لاراول می خواهیم درمورد redirect یا تغییرِ مسیر کاربر از صفحه ای به صفحه دیگر صحبت نماییم. ما اغلب برای این کار از متد redirect استفاده می نماییم.
انواع تغییر مسیرها در لاراول را در این مقاله با هم مرور می کنیم :
- Redirect به یک آدرس
- Redirect به صفحه قبل
- Redirect به یک Route نامگذاری شده
- Redirect به یک Route نامگذاری شده به همراه پارامتر
- Redirect به یک اکشن در Controller
- Redirect به یک اکشن در Controller به همراه پارامتر
- Redirect همراه با داده های Session
Redirect به یک آدرس
شما می توانید داخل controllerتان در هرجایی از برنامه، به مسیری دیگر redirect کنید. فرض کنید نمونه کد زیر ، قسمتی از کد، یکی از اکشن متد های controolerتان است :
public function Test() {
return redirect('user/profile');
}
و باید این مسیر در route هاتون تعریف شده باشد و قبلا برای آن route تعریف کرده باشید.
Route::get('user/profile', 'UserController@Profile');
Redirect به صفحه قبل
برای این کار در لاراول، دو روش موجود است. هم می توان از متد ()redirect استفاده کرد ، هم می توان از آن استفاده نکرد. به مثال دقت کنید:
تغییر مسیر با استفاده از متد ()redirect :
public function Test2() {
return redirect()->back();
}
تغییر مسیر بدون استفاده از متد ()redirect :
public function Test2() {
return back();
}
نامگذاری route ها در لاراول
در لاراول این امکان برای شما میسر است که برای route یا مسیر خود یک نام دلخواه اختصاص دهید. فایده کار این است، اگر مسیر دارای نام پیچیده ای باشد، می توان برای آن نام اختصاری تعیین کرد و این ، کارِما را برای مسیردهی ، راحت تر می کند. و همچنین می توان برای redirect (تغییرمسیردادن) در برنامه از آنها استفاده نمود. برای نامگذاری routeها، از کلمه کلیدی as استفاده می شود.
Route::get('user/profile', ['as' => 'profile', function () {
//
}]);
نکته : ما برای روت user/profile، نام profile را اختصاص دادیم.
نکته آموزشی برای یادگیری بیشتر :
آرگومان دوم برای متد Get در سیستم مسیردهی ، می تواند به اشکال زیر باشد :
- اگر clouser یا توابع بی نام باشد در همان لحظه اجرا می گردد.
- اگر string باشد، به controller و اکشن متد مورد نظرش اشاره می کند.
- اگر array باشد، تنظیمات روتر را می گیرد و بعد به controller و اکشن متد مورد نظرش اشاره می کند.
Redirect به route های نامگذاری شده
درلاراول می توان با استفاده از متد route() و نام یک route نام گذاری شده، کاربر را به مسیر دلخواه ارجاع داد و اگر route شما دارای پارامتر بود، میتوان آن را به عنوان آرگومان دوم ارسال نمود، درغیر این صورت نیازی به ارسال پارامتر نیست.
return redirect()->route('profile', ['id' => 1]);
مثال:
جهت روشن تر شدن مطلب مثال زیر را مطالعه نمایید.
مرحله 1- وارد مسیر resources/views شوید و view ی به اسم test.php بسازید.
<html>
<body>
<h1>Example of Redirecting to Named Routes</h1>
</body>
</html>
مرحله 2- وارد فایل app/Http/routes.php می شویم و درآنجا route ی را برای فایل test.php تعریف می کنیم. این route را به نام testing نام گذاری می کنیم. همچنین ما route دیگری را به اسم redirect می سازیم.
Route::get('/test', ['as'=>'testing',function(){
return view('test2');
}]);
Route::get('redirect',function(){
return redirect()->route('testing');
});
مرحله 3- مرورگر خود را باز کنید و URL زیر را در آن وارد کنید.
http://localhost:8000/redirect
مرحله 4- بعد از اجرا کردن URL بالا ، شما redirect می شوید به آدرس http://localhost:8000/test در واقع ما به route ی با نام testing تغییر مسیر دادیم.
مرحله 5- اگر کدهای شما به درستی اجرا شوند صفحه ای مطابق عکس زیر را مشاهده خواهید کرد.
Redirect به اکشن های یک controller
گاهی شما نیاز دارید بعد از عملیات خاصی که انجام دادید به اکشن متد خاصی از controller ارجاع داده شوید، و اگر اکشن متد controller پارامترهایی به عنوان ورودی می گیرد باید به شکل زیر عمل کنید، در غیر اینصورت نیازی به ارسال پارامتر نیست.
return redirect()->action(‘NameOfController@methodName’,[parameters]);
مثال :
مرحله 1 - دستور آرتیسان زیر را برای ساخت Controller را در command line تایپ می کنیم.
php artisan make:controller RedirectController --plain
مرحله 2 - بعد از ساخت controller پیامی مبنی بر موفقت آمیز بودن دستور فوق برای شما نمایش داده می شود.
مرحله 3 - کد زیر را در فایل app/Http/Controllers/RedirectController.php قرار دهید.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class RedirectController extends Controller {
public function index(){
echo "Redirecting to controller's action.";
}
}
مرحله 4 – کد زیر را در فایل app/Http/routes.php قرار دهید.
Route::get('rr','RedirectController@index');
Route::get('/redirectcontroller',function(){
return redirect()->action('RedirectController@index');
});
مرحله 5 - مرورگر خود را باز کنید و URL زیر را در آن وارد کنید.
http://localhost:8000/redirectcontroller
مرحله 6 – اگر کدهای شما به درستی اجرا شوند صفحه ای مطابق عکس زیر را مشاهده خواهید کرد.
Redirect با داده های Session
در لاراول این امکان وجود دارد که، کاربر بتواند زمانی که به یک route تغییر مسیر می دهد، یک پیغام را نیز ارسال کند. به مثال زیر دقت کنید :
public function Test() {
return redirect('home')->with('message', 'Welcome to clicksite !');
}
این فصل در یک نگاه:
آشنایی با امکانات جدید لاراول ۷…
برخی از سرفصل های این پکیج آموزشی : لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…این فصل در یک نگاه:
بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…
وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…این فصل در یک نگاه:
مباحث تکمیلی فریم ورک لاراول…
فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…این فصل در یک نگاه:
مباحث مقدماتی فریم ورک react.js…
توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …