如何在Slim框架中从文件读取数据?例如,以下代码可在通常的php应用程序中工作:
<?php
$data= json_decode(file_get_contents('C:\Users\Admin\Desktop\s1\vendor\me.json'), true);
print data["data"][0]["id"];
但是在Slim中该怎么做?我写道:
use Slim\Http\Request;
use Slim\Http\Response;
require 'vendor/autoload.php';
$app = new \Slim\App();
$app->get('/test/', function(Request $reg, Response $res, $args = []){
$data= json_decode(file_get_contents('C:\Users\Admin\Desktop\s1\vendor\me.json'), true);
return $res->$data["data"][0]["id"];
});
$app->run();
我什么也没得到。请告诉我如何解决它,蚂蚁的想法?
答案 0 :(得分:1)
我发现您的代码存在两个问题。
您正在解码JSON字符串并将其放入$data
:
$data= json_decode(file_get_contents('C:\Users\Admin\Desktop\s1\vendor\me.json'), true);
但是您正在尝试从$res->$data
返回一些信息:
return $res->$data["data"][0]["id"];
这是不正确的。
您需要返回$data["data"][0]["id"]
或将其写入响应正文并返回响应:
$app->get('/test/', function(Request $reg, Response $res, $args = []){
$data= json_decode(file_get_contents('C:\Users\Admin\Desktop\s1\vendor\me.json'), true);
$res->getBody()->write($data["data"][0]["id"]);
return $res;
});
另外,您将路径定义为/test/
,并以尾随/
,这意味着您必须使用带有尾部斜杠的localhost/test/
来访问此路由,否则您将收到一个404
错误。我建议删除定义中的尾随/
。
答案 1 :(得分:-1)
尝试以下
$app->get('/test/', function(Request $reg, Response $res, $args = []){
$data= json_decode(file_get_contents('C:\Users\Admin\Desktop\s1\vendor\me.json'), true);
$res->write($data["data"][0]["id"]);
return $res;
});