ریدایرکت در لاراول
در این قسمت می خواهیم درمورد 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 !’);
}
دانلود آموزش پی اچ پی ; کلیک سایت ; دانلود آموزش php
درباره احمدرضا ملاحسینی
مدیر سایت آرنا لرن، متخصص سئو و بیزنس آنلاین، برنامه نویس موبایل. علاقمند به موسیقی و آواز
نوشته های بیشتر از احمدرضا ملاحسینی
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.