我读的文件,我不能够得到它如何获得Security.salt从价值app.php在Cakephp 3.我试图这样做
$salt = Configure::read('Security.salt');
Run Code Online (Sandbox Code Playgroud)
导入以下库
use Cake\Core\Configure;
use Cake\Core\Configure\Engine\PhpConfig;
Run Code Online (Sandbox Code Playgroud)
请帮助.
Cakephp version is 3.4
使用CakePHP 3.4,PHP 7.0.
我正在尝试使用一个非常简单的控制器方法来输出一些JSON.它输出"无法修改标题...".
public function test() {
$this->autoRender = false;
echo json_encode(['method' => __METHOD__, 'class' => get_called_class()]);
}
Run Code Online (Sandbox Code Playgroud)
浏览器输出
{"method":"App\\Controller\\SomeController::test", "class":"App\\Controller\\SomeController"}
Warning (512): Unable to emit headers. Headers sent in file=...
Warning (2): Cannot modify header information - headers already sent by (output started at ...)
Warning (2): Cannot modify header information - headers already sent by (output started at ...)
Run Code Online (Sandbox Code Playgroud)
我完全理解为什么PHP抱怨这个.问题是为什么CakePHP会抱怨我该怎么办?
应该注意的是,CakePHP 2.x允许这样做.
我尝试迁移到 3.4,但在发送 json 对象时遇到问题。到 3.3,我使用了以下代码:
$jsonSites = json_encode([
'reqLocation' => [
'latitude' => $latitude,
'longitude' => $longitude
],
'sites' => $sitesList,
'discoveryBooks' => $discoveryBooksList,
'deleteSites' => !empty($inDeviceSites) ? [$inDeviceSites] : [],
'deleteBooks' => !empty($inDeviceBooks) ? [$inDeviceBooks] : []
]);
$this->response->type('application/json');
$this->response->body($jsonSites);
Run Code Online (Sandbox Code Playgroud)
我的客户收到了这样的对象:
{
"reqLocation": {
"latitude": 48.080563,
"longitude": 4.4649
},
"sites": [
{
"id": 5076,
"name": "...",
"modified": "2017-01-28T03:03:23+00:00",
"directory_name": "fr/26/26120_56cc30ea4d907",
"type": "portail",
"longitude": 7.031953,
"latitude": 47.939468,
"image_0": "jpg",
"picto_color": "#FFDDDDDD",
"agthemes": [],
"distance": 131.29188575851,
"category": 1281,
"category_name": "Jardin",
"sitecategories": …Run Code Online (Sandbox Code Playgroud)