我想为一个控制器使用一个路由,但使用不同的操作。我想通过会话中的当前值来切换控制器的动作,但不要更改路由(浏览器中的当前 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');
}
但是,返回的会话值始终为空(可能是值被缓存了?!)
我想使用下面的代码,但没有根据需要工作......我也有会话值,但是,我不明白,我需要从回调函数返回什么?
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”(如果会话值为空)
大话西游666