top-think / think

ThinkPHP Framework ——十年匠心的高性能PHP框架
http://www.thinkphp.cn
Other
7.83k stars 1.62k forks source link

在中间件中进行 echo 输出 顺序异常!是否是我使用错误? #973

Closed gensir closed 5 years ago

gensir commented 5 years ago

版本

php version: 7.2.1 think version: 6.0.0RC4

中间件

app/middleware/CheckLogined.php

<?php
namespace app\middleware;
class CheckLogined
{
    public function handle($request, \Closure $next)
    {
        echo '在 控制器 C 之前执行<br/>';
        $response = $next($request);
        echo '在 控制器 C 之后执行<br/>';
        return $response;
    }
}

控制器

app/controller/User.php

class User extends BaseController
{
    public function userInfo()
    {
         echo "这里是控制器<br/>php version:" . PHP_VERSION . '<br/> think version:' . App::VERSION;
    }
}

中间件全局配置

app/middleware.php

<?php
// 全局中间件定义文件
return [
    \app\middleware\CheckLogined::class,
];

路由

route/app.php

Route::get('user/userInfo', 'user/userInfo');

问题

浏览器访问 /user/userInfo 时 输出: FBF64A02-FEE5-4de8-9DF2-96F155CD652E

gensir commented 5 years ago

@liu21st

gensir commented 5 years ago

已解决 :控制器中必须有 返回值

public function userInfo()
{
     echo "这里是控制器<br/>php version:" . PHP_VERSION . '<br/> think version:' . App::VERSION;
     return '';
}