我在Linux服务器上遇到了一个可怕的问题。我现在不明白该怎么做。
我的问题是在Linux服务器中我的脚本运行正常而没有任何错误,但是当我使用一个对象进行JSON编码时,它返回false。
请任何帮助。提前谢谢。
public function ajaxDataSearch() {
$this->loadModel('ViewDocketHistorys');
$this->render(false);
$this->viewBuilder()->layout('false');
if ($this->request->is(['post'])) {
$DocketNo = $this->request->data['DocketNo'];
$SearchData = $this->ViewDocketHistorys->find()
->where(['DocketNo' => $DocketNo])
->last();
$Jsondate = json_encode($SearchData);
echo $Jsondate;
}
}
调试查询数据时
debug($SearchData); exit;
输出:
object(App\Model\Entity\ViewDocketHistory) {
'MasterID' => (int) 311,
'DocketNo' => 'fhfghfghf',
'[new]' => false,
'[accessible]' => [
'*' => true
],
'[dirty]' => [],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'ViewDocketHistorys'}
当我调试JSON编码
时debug($Jsondate); exit;
输出:
false
答案 0 :(得分:0)
上次找到解决方案当我使用UNION创建视图时,我必须确保相应列的数据类型相同(或者至少相似,足以使其转换为另一列)。在当前的情况下,视图的第一列是'column1',除了BLOB之外没有任何数据类型定义可以理解它。
如果你真的需要这个作为一个观点,你可以试试......
SELECT e.ID AS ID,
NULL AS table_field,
...etc...
'e' AS type
FROM table1 AS e
UNION ALL
SELECT
NULL AS ID,
k.table_field AS table_field,
...etc...
'k' AS type
FROM table2 AS k;
详情here
答案 1 :(得分:0)
您可以尝试:
$Jsondate = json_encode($SearchData->toArray());
- > toArray()会将实体类转换为干净的数组,之后,json_decode会收到JavaScript Object Notation的正确结构。