behnamshateri
5 سال پیش توسط behnamshateri مطرح شد
5 پاسخ

برگشت به صفحه ای که کاربر توش بوده

سلام
بعضی از صفحات نیاز به این داره که کاربر login کرده باشه تو وبسایت، حالا وقتی رو در نظر بگیرین که کاربر از یک صفحه خاص داره ریدایرکت میشه تو صفحه login و کاربر login میکنه. پیش فرض login به این صورت که یک متد $redirectTo داره که کاربر برای اینکه login بشه از
redirect()->intended($this->redirectPath());
که redirectPath هم

public function redirectPath()
    {
        if (method_exists($this, 'redirectTo')) {
            return $this->redirectTo();
        }

        return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
    }

که به صورت static بر میگرده به آدرس که به متد redirectTO داده شده. ولی کاربر قراره برگرده به صفحه مد نظر.
توی سایت راکت این موضوع پیاده سازی شده.
ممنون میشم اگه راهنمایی کنید


ثبت پرسش جدید
علی فرمانی
تخصص : فرانت اند
@farmani 5 سال پیش آپدیت شد
0

میتونید تو سشن ذخیره کنید .
برای مثال تو هر صفحه که میرید سشن ریخته بشه تو یه متغیر بعد سشن پاک بشه دوباره ادرس جدید ریخته بشه تو همون سشن .
اینجوری هم آدرس صفحه فعلی رو دارین هم قبلی .
بعدم راحت تو لاگین بگید اگه لاگین شد ریدایرکت بشه تو صفحه قبلی که تو متغیر ریختین .
اینجوری با همین روش میتونید مثلا تا 2 الی 3 و بیشتر صفحه های قبلتر هم داشته باشید با متغیر های بیشتر .
همشم میتونید یه کلاس تعریف کنید همرو داشته باشید با فراخونی کلاس . یا اگه یچیز ساده باشه با یه تابع .
البته این یه روش میتونه باشه .


behnamshateri
@behnamshateri 5 سال پیش مطرح شد
0

@info.aligraph این طور که من متوجه شدم تو صفحه مثلا محصول سشن آدرس صفحه ریخته بشه تو یه متغیر و بعد ** صفحه ای که بره سشن ریخته میشه داخل اون متغیر، چند تا سوال :
» کجا سشن دقیقا ست بشه؟
» کجا پاک بشه؟ ممنون میشم اگه با مثال بگین.
و اینکه همه صفخات هم نباید اینطور بشهو چطور این هندل بشه


علی فرمانی
تخصص : فرانت اند
@farmani 5 سال پیش آپدیت شد
0

@behnamshateri
نه دیگه شما تو کدتون اول میاین سشن رو چک میکنید اگه موجود بود بریزه تو یه متغیره بعد بیاد صفحه جاری رو ست کنه روش اینجوری متغیر میشه سشن صفحه قبلی و سشن جدید میاد آدرس صفحه جاری میشه .

if( isset($_SESSION["back_page"]) ){  
$back_page = $_SESSION["back_page"];  
}  
$_SESSION["back_page"] = 'new this page link ...';

mahdi khanzadi
تخصص : backend developer at Snapp mar...
@khanzadimahdi 5 سال پیش آپدیت شد
0

اگه میخواید به صفحه قبل برگرده میتونید به صورت زیر عمل کنید:

return redirect()->back();

اما اگه میخواید به روت خاصی بره به صورت زیر :

return redirect()->route('your route name');

و اگه میخواید به ادرس خاصی بره به صورت زیر :

return redirect('/home');

موفق باشید.


marik
@kaviyani.m89 4 سال پیش مطرح شد
0

سلام .اگر لاگین به صورت مدال باشه.حالا بخوایم بره به صفحه قبل نه صفحه home. این چجوری انجام میدیم؟

if (! $request->expectsJson()) {

        $url = $request->session()->put('url.intended', $request->url());
 return route( '/home',['modal'=>'login']);
    }
}
}

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام