私のLaravel APIルートからオブジェクトを返そうとしていますが、返されるのは空の配列です。Laravel Apiは空のオブジェクトのみを返します
私のモデルは次のようになります。
class MobilePageStats extends Model
{
//
private $score;
private $mobileFriendly;
private $numberRobotedResources;
private $numberTransientFetchFailureResources;
private $transientFetchFailureUrls;
private $cms;
private $ruleResults;
/**
* MobilePageStats constructor.
* @param int $score
* @param bool $mobileFriendly
* @param int $numberRobotedResources
* @param int $numberTransientFetchFailureResources
* @param array $transientFetchFailureUrls
* @param string $cms
* @param array $ruleResults
*/
public function __construct(
$score,
$mobileFriendly,
$numberRobotedResources,
$numberTransientFetchFailureResources,
$transientFetchFailureUrls,
$cms,
$ruleResults
) {
$this->score = $score;
$this->mobileFriendly = $mobileFriendly;
$this->numberRobotedResources = $numberRobotedResources;
$this->numberTransientFetchFailureResources = $numberTransientFetchFailureResources;
$this->transientFetchFailureUrls = $transientFetchFailureUrls;
$this->cms = $cms;
$this->ruleResults = $ruleResults;
}
そして私はまた、すべてのものの上にゲッターを得ました。
私は、この機能では、コンストラクタで私のコントローラ内のすべてのデータを設定します。私のAPIのルートで
public function getData() {
$cms = "";
$score = $this->data->ruleGroups->USABILITY->score;
$mobileFriendly = $this->data->ruleGroups->USABILITY->pass;
if(isset($this->data->pageStats->numberRobotedResources)){
$numberRobotedResources = $this->data->pageStats->numberRobotedResources;
}else{
$numberRobotedResources = '';
}
if(isset($this->data->pageStats->numberTransientFetchFailureResources)){
$numberTransientFetchFailureResources = $this->data->pageStats->numberTransientFetchFailureResources;
}else{
$numberTransientFetchFailureResources = '';
}
if(isset($this->data->pageStats->transientFetchFailureUrls)){
$transientFetchFailureUrls = $this->data->pageStats->transientFetchFailureUrls;
}else{
$transientFetchFailureUrls = '';
}
if(isset($this->data->pageStats->cms)){
$cms = $this->data->pageStats->cms;
if($cms != 'WORDPRESS' && $cms != 'JOOMLA'){
$cms = $this->checkCMS();
}
}
$cvp = $this->getConfigureViewport();
$fontSizes = $this->getUseLegibleFontSizes();
$avoidPlugins = $this->getAvoidPlugins();
$sizeToViewport = $this->getSizeContentToViewport();
$tapTargets = $this->getSizeTapTargetsAppropriately();
$ruleResults = [$cvp, $fontSizes, $avoidPlugins, $sizeToViewport, $tapTargets];
$mobilePageStats = new MobilePageStats($score, $mobileFriendly, $numberRobotedResources,
$numberTransientFetchFailureResources, $transientFetchFailureUrls, $cms, $ruleResults);
return $mobilePageStats;
}
を私は、このようなモデルを返すようにしてみてください。
Route::get('/mobilePageSpeed', function(Request $request){
$data = new PageSpeedMobileController($request->url);
return response($data->getData());
});
しかし、すべての
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;">[]</pre>
</body>
なぜオブジェクトが返されないのですか?私はそれが印刷できるので、データが含まれていることを知っています。しかし、それを送ることはできないのですか?
私はrepsonse() - > json($ data-> getData())を試しました。そして、json_encode($ data-> getData())でも同じ結果が得られますか?私はちょうど解決策を見つけることができないようです。
Laravel Apiからオブジェクトを返すにはどうすればよいですか?
ニース、それはトリックをした!しかし、私はまだそれをjsonレスポンスとして返さなければならなかった – user2926430