php - 带条件的 Laravel 路由
问题描述
它(路由:缓存)如何在引擎盖下工作,如果我缓存我的路由,它会破坏逻辑。我有一个网络钩子,可以将数据发送到一条路线。数据仅因对象字段而异。将其拆分到不同的路线是否正确,或者我需要创建索引方法,该方法将通过方法重定向我的逻辑
Route::group(['namespace' => 'Webhook'], function () {
if (Request::has('message')) {
Route::post('/', 'WebhookController@message');
}
if (Request::has('callback_query')) {
Route::post('/', 'WebhookController@callback');
}
});
解决方案
您可以将路线代码缩短为:
Route::group(['namespace' => 'Webhook'], function () {
Route::post('/', 'WebhookController@handle');
});
并在控制器中做“繁重的工作”:
class WebhookController extends Controller
{
public function handle(Request $request)
{
if ($request->has('message')) {
return $this->message();
}
if ($request->has('callback_query')) {
return $this->callback();
}
}
public function message();
public function callback();
}
这相当于:
Route::group(['namespace' => 'Webhook'], function () {
Route::post('/', function(Request $request) {
if ($request->has('message')) {
return (new WebhookController)->message();
}
if ($request->has('callback_query')) {
return (new WebhookController)->callback();
}
});
});
推荐阅读
- sqlite - SQLite 工具可以在表中的现有条目之间插入条目
- python - 打印 1 个列表而不是多个列表
- python - 当我在 pyqt5 中按 Enter 时转到下一个 LineEdit
- flutter - gridview.count 在颤动中给出范围错误
- c++ - 将矩阵中的向量相加,在 C++ 中逐个元素地求和
- javascript - Svelte 给我“未捕获的 ReferenceError:未定义要求”
- signalr - Azure Signal R 服务 (ASRS) 增值
- elasticsearch - Elasticsearch 嵌套查询未按预期工作
- c - 为什么我的代码在 codeBlocks 中输出正确,但在 HackerRank 中输出错误?
- firebase-cloud-messaging - FCM HTTP v1 推送通知 - 图片不推送