亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不同控制器動作的一種途徑

不同控制器動作的一種途徑

PHP
DIEA 2021-10-15 15:25:55
我想為一個控制器使用一個路由,但使用不同的操作。我想通過會話中的當前值來切換控制器的動作,但不要更改路由(瀏覽器中的當前 url)。我試過這個代碼:$token = session('stravaAccessToken');$athlete = session('stravaAthlete');$stats = session('stravaStats');if (empty($token) || empty($athlete) || empty($stats)) {    Route::get('/', 'StravaController@login');} else {    Route::get('/', 'StravaController@index');}但是,返回的會話值始終為空(可能是值被緩存了??。┪蚁胧褂孟旅娴拇a,但沒有根據需要工作......我也有會話值,但是,我不明白,我需要從回調函數返回什么?Route::get('/', function(){    $token = session('stravaAccessToken');    $athlete = session('stravaAthlete');    $stats = session('stravaStats');    if (empty($token) || empty($athlete) || empty($stats)) {        Route::get('/', 'StravaController@login');    } else {        Route::get('/', 'StravaController@index');    }});php 7.1,laravel 5.8對于第一個代碼變體:始終打開一個操作“StravaController@login”,對于第二個代碼變體:打開空白頁面我想期待一個動作“StravaController@index”(會話值不為空)或一個動作“StravaController@login”(如果會話值為空)
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

將所有內容發送到一個函數:


Route::get('/', 'StravaController@handle');

并讓該函數相應地調用login/index函數:


public function handle() {

    $token = session('stravaAccessToken');

    $athlete = session('stravaAthlete');

    $stats = session('stravaStats');


    if (empty($token) || empty($athlete) || empty($stats)) {

        return $this->login();

    } else {

        return $this->index();

    }

}

另一種選擇是將登錄頁面放在不同的路由上,如果“登錄”數據不存在,則讓中間件重定向到它。


查看完整回答
反對 回復 2021-10-15
  • 1 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號