Laravel 5.7 + dingo/API 2.0 + tymon/jwt-auth 1.0.0-rc.3 问题

laravel 5.7 + dingo/api 2.0 + tymon/jwt-auth 1.0.0-rc.3 写接口,请求接口时发现被请求了两次,
//api 基础类型
class ApiController extends BaseController
{
public $param;//接收的参数
public $perPage;//每页数量
public $imageUrl;

public function construct($request){
parent::
construct();
$logger = new Logger('api-access-log');
$filename = env('API_LOG_PATH', '/data/logs/api/') . 'request-' . date('Ymd') . '.log';
$logger->pushHandler(new StreamHandler($filename, Logger::DEBUG));
$logInfo = ['url' => url()->current(), 'request' => request(), 'header' => '','t' => microtime(true)];
$logger->info('', $logInfo);
}
}

//api 控制器
class ExpressCompanyController extends ApiController
{
public function construct(Request $request)
{
parent::
construct($request);
}

public function index(){
//TODO
}
}

//路由
$api = app('Dingo\Api\Routing\Router');

$api->version('v1', function ($api) {
$api->group([
'prefix' => 'v1',
'namespace' => 'App\Modules\Api\Http\Controllers\v1',
'domain' => config('api.domain'),
'middleware'=> ['cors', 'check.api.parameter']
], function ($api) {
$api->get('/express/lists', 'ExpressCompanyController@index');
});
});

查看日志时发现写了两条,哪位大神知道原因吗?

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 12

跪求重新编辑,,你这代码全乱了。。 :joy: :joy: :joy:

6年前 评论

@idlewater 停了也一样是请求两次,我也是醉了

6年前 评论

一次option ?

6年前 评论

@yulei745 用ajax请求时是有一次option,但是单单执行api地址也会有两次log

6年前 评论
66

类的执行顺序
你的父类函数被先执行了一次写入日志
然后当前类的

    public function __construct()
    {
        parent::__construct();
    }

又再一次执行了父类的构造函数 导致再一次写入日志

6年前 评论

@66 也就是说并不是接口被请求两次?

6年前 评论
66

@gxcnvip 是的是父类的构造函数 执行了2次

6年前 评论

@idlewater 所有浏览器都试过了

file

6年前 评论

@66 那就应该没影响

6年前 评论
happyqian_ah

请求两次是正常的,建议看看CORS

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!