检查用户是否是订阅者并显示 X 路由,否则显示 Y 路由
Check if a user is a subscriber and display X route else display Y route
在我的项目中,我有一个显示主题的路径,如下所示。
Route::get('/voting-topics', [PublicTopicController::class, 'index'])->name('public-topics');
投票主题页面显示了从我的数据库中提取的主题列表,它们被标记为 public。
我面临的问题是我还想为订阅者显示完整的主题列表。
目前,我正在为订阅者使用这条路线
Route::group(['middleware' => ['subscriber']], function () {
Route::get('/dashboard/topics', [MemberTopicController::class, 'topics'])->name('dashboard.topics');
});
我认为这不是最好的方式,我更愿意将所有主题都放在 /topics 上,但只显示 none 订阅者的 public 个主题。
我想我的问题是,如果用户是订户并执行类似操作,是否有办法检查我的路线。
if( subscriber()->user() ) {
Route::post('/topics', [TopicController::class, 'index'])->name('topics');
} else {
Route::post('/topics', [TopicController::class, 'publicTopic'])->name('topics');
}
我不会声明两条不同的路由,而是声明一条路由,然后根据订阅者状态在控制器中决定要做什么。
类似于:
Route::get('/topics', [TopicController::class, 'topics'])->name('topics');
在你的控制器中:
public function topics() {
if (subscriber()->user()) {
return $this->subscriberTopics();
} else {
return $this->publicTopics();
}
}
private function publicTopics() {
// public topics stuff
}
private function subscriberTopics() {
// subscriber topics stuff
}
在我的项目中,我有一个显示主题的路径,如下所示。
Route::get('/voting-topics', [PublicTopicController::class, 'index'])->name('public-topics');
投票主题页面显示了从我的数据库中提取的主题列表,它们被标记为 public。
我面临的问题是我还想为订阅者显示完整的主题列表。
目前,我正在为订阅者使用这条路线
Route::group(['middleware' => ['subscriber']], function () {
Route::get('/dashboard/topics', [MemberTopicController::class, 'topics'])->name('dashboard.topics');
});
我认为这不是最好的方式,我更愿意将所有主题都放在 /topics 上,但只显示 none 订阅者的 public 个主题。
我想我的问题是,如果用户是订户并执行类似操作,是否有办法检查我的路线。
if( subscriber()->user() ) {
Route::post('/topics', [TopicController::class, 'index'])->name('topics');
} else {
Route::post('/topics', [TopicController::class, 'publicTopic'])->name('topics');
}
我不会声明两条不同的路由,而是声明一条路由,然后根据订阅者状态在控制器中决定要做什么。
类似于:
Route::get('/topics', [TopicController::class, 'topics'])->name('topics');
在你的控制器中:
public function topics() {
if (subscriber()->user()) {
return $this->subscriberTopics();
} else {
return $this->publicTopics();
}
}
private function publicTopics() {
// public topics stuff
}
private function subscriberTopics() {
// subscriber topics stuff
}