Comments (7)
OK, I will check it later.
from laravel-s.
@hhxsv5 Thank you for, looking into this. I ran out of time to fix this issue, but I wrote the meaningful parts above. If I can come up with something I will let you know.
from laravel-s.
If anyone has this, the problem is that the Dingo router dispatching is not applied.
My debug messages:
PHP webserver:
production.INFO: DingoServiceProvider@register
production.INFO: DingoRouter@dispatch--begin
production.INFO: DingoRouter@routesDispatched:1
production.INFO: Current route: api/sites
production.INFO: SiteController@index | Serializer: League\Fractal\Serializer\DataArraySerializer
production.INFO: DingoRouter@dispatch--end
production.INFO: DingoRouter@prepareResponse--begin
production.INFO: DingoHttpResponseFactory@morph
production.INFO: DingoRouter@prepareResponse--end
Swoole webserver:
production.INFO: DingoServiceProvider@register
production.INFO: Current route: api/sites/asd
production.INFO: SiteController@index | Serializer: League\Fractal\Serializer\DataArraySerializer
from laravel-s.
If you want to re-register the LumenServiceProvider it will get into an infinite loop.
I think the problem is here (but I still don't know how to fix it):
/**
* Add the request middleware to the beginning of the middleware stack on the
* Lumen application instance.
*
* @param \ReflectionClass $reflection
*
* @return void
*/
protected function addRequestMiddlewareToBeginning(ReflectionClass $reflection)
{
$property = $reflection->getProperty('middleware');
$property->setAccessible(true);
$middleware = $property->getValue($this->app);
array_unshift($middleware, Request::class);
$property->setValue($this->app, $middleware);
$property->setAccessible(false);
}
from laravel-s.
@gazben Thanks for your feedback, this issue is similar to #28.
So far, I don't have a graceful solution. But I will follow it up.
from laravel-s.
The main problem is located the same as in #28 the removeMiddlewareFromApp function in the router adapter is not reset after the first request is served, and will get into the infinite loop because the Request middleware is not removed.
If I just disable the thing:
protected function removeMiddlewareFromApp()
{
if ($this->middlewareRemoved) {
\Log::info('Middleware already removed!');
return;
}
$this->middlewareRemoved = false; // this is true originally
...
The GET/POST requests will work fine. But the OPTIONS requests are failing with no error message just the 500 status code and no log. So basically the same as #28.
Without logs I'am running out of ideas :(
from laravel-s.
@hhxsv5 Can I return a response from a middleware in laravels? The function is called according to the logs, but after it returns, it throws a 500 error.
My cors middleware:
public function handle(Request $request, Closure $next)
{
if($request->isMethod('OPTIONS')) {
$response = new \Dingo\Api\Http\Response(null);
$this->setCorsHeaders($request, $response);
return $response;
}
return $next($request);
}
from laravel-s.
Related Issues (20)
- 请问如果使用的Sanctum 轻量级 API 认证,第二次通过request->user()结果为null 这么配置解决? HOT 2
- 请问 laravel/sanctum 怎么正确使用在laravel-s 项目上 HOT 7
- 请问如何启动服务时仅开启ws服务 HOT 2
- 系统偶发报connect() to unix:/dev/shm/live-server.sock failed HOT 6
- 开启了自定义进程process, 使用laravels stop命令不能关闭服务器 HOT 2
- nginx代理后怎么获取客户端真实IP呢? HOT 2
- Telescope 请求跟踪问题 HOT 1
- does not exist, or permission denied HOT 1
- `App\Console\Commands`下的创建的自定义命令中调用`app('swoole')`显示`Target class [swoole] does not exist`. HOT 2
- [QUESTION] quit property on custom process during reload
- 我使用这个只使用ws服务,其他业务使用了fpm模式,发现一个问题 HOT 1
- tcp socket onConnect 里面能使用数据库模型,onReceive 不能使用,啥原因 HOT 1
- Target class [swoole] does not exist error in console command with laravels server start and up HOT 2
- dcat-admin使用问题 HOT 1
- LaravelS 3.7.37 Optimized the call of schedule:run command Issue HOT 1
- 配置项 `register_providers` 不生效 HOT 2
- 启动的工作目录问题 HOT 1
- The operation of websockets and dispatch_mode HOT 3
- laravels master 内存没释放 HOT 2
- Response time increases possible memory leaks HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel-s.