开启强类型后出现这个问题
来源:7-5 发送短信验证码API逻辑编写以及布置的作业
夜明河
2020-01-15
PHP版本是7.3.9
代码和教程上一样,我只保留的关键部分
<?php
declare(strict_types=1);
namespace appapicontroller;
use appBaseController;
/**
* 发送短信
*/
class Sms extends BaseController
{
public function code() : object{
return show(config('status.success'), 'is ok');
}
}
返回这样的错误,Return value of appapicontrollerSms::code() must be an instance of appapicontrollerobject, instance of think
esponseJson returned
如果改成以下的代码,则可以正常
<?php
declare(strict_types=1);
namespace appapicontroller;
use appBaseController;
use thinkResponseJson;
/**
* 发送短信
*/
class Sms extends BaseController
{
public function code() : Json {
return show(config('status.success'), 'is ok');
}
}
更新:::::下面是show方法
function show($status, $message, $data = [], $httpStatus = 200){
$results = [
'status' => $status,
'message' => $message,
'result' => $data,
];
return json($results, $httpStatus);
}
写回答
5回答
-
左手边的回忆
2020-02-21
你这个要求的返回时json字符串,你就应该使用json不应该使用object
00 -
PHP最差初学者
2020-02-21
请问问题解决了吗,我也遇到相同的情况
00 -
happy技师
2020-01-17
请问问题解决了吗? 我也遇到了相同的情况
在 controller 层的 Sms.php 开启强类型, 报同样的错, 关闭强类型不报错
tp版本6.0.2
00 -
singwa
2020-01-15
use think\response\Json;
这样试试。 Response => response小写。按道理和这个没有关系,您TP哪个版本?
032020-01-15 -
singwa
2020-01-15
您好,您的show方法截图我看看。
032020-01-15
相似问题