Laravel 有条件的路由
Laravel routing with conditions
它(route:caching) 是如何工作的?如果我缓存了我的路线,它会破坏逻辑吗?
我有一个网络钩子,可以将数据发送到一条路线。数据仅由对象字段不同。将它拆分到不同的路由是否正确,或者我需要制作索引方法,它将通过方法重定向我的逻辑
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();
}
});
});
它(route:caching) 是如何工作的?如果我缓存了我的路线,它会破坏逻辑吗? 我有一个网络钩子,可以将数据发送到一条路线。数据仅由对象字段不同。将它拆分到不同的路由是否正确,或者我需要制作索引方法,它将通过方法重定向我的逻辑
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();
}
});
});