从Laravel的雄辩模特中隐藏数字字段 [英] Hide number field from Eloquent model in Laravel
问题描述
当我尝试从我的模型中获取值时,我得到一个例外,在这些字段一切都很好之前$ /
这个工作很好,直到添加了数字字段。
Model :: find($ id) - > name;
我得到试图获取非对象的属性
我尝试使用保护隐藏的
数组将其从JSON中隐藏起来,但都不是'0'
, 0
或'{0}'
似乎工作。
这是错误
{
:对不起,出了问题。,
exception:Symfony\\\Component\\Debug\\Exception\\FatalErrorException,
message :在/home/david/workspace/papw2/jukebox/api/app/AlbumComment.php:18\\\
堆栈跟踪:\\\
#0中显示消息尝试获取非对象属性的未捕获异常ErrorException /home/david/workspace/papw2/jukebox/api/app/AlbumComment.php(18):Illuminate\\Foundation\\\Bootstrap\\HandleExceptions-> handleError(8,'试图获取p ...','/ home / david / wor ...',18,Array)\\\
#1 / home / david / workspace / papw2 / jukebox / api / vendor / laravel / framework / src / Illuminate / Database /Eloquent/Model.php(2669):App\\AlbumComment-> getUserAttribute(NULL)\\\
#2 / home / david / workspace / papw2 / jukebox / api / vendor / laravel / framework / src / Illuminate /Database/Eloquent/Model.php(2681):Illuminate\\\Data (3)/ home / david / workspace / papw2 / jukebox / api / vendor / laravel / framework / src /照明/数据库/口述/ Model.php(2435):Illuminate\\\Database\\\ElectexClassModel-> mutateAttributeForArray('user',NULL)\\\
#4 / home / david / workspace / papw2 / jukebox / api / vendor / laravel / framework / src / Illuminate / Database / Eloquent / Model.php(2379):Illuminate\\\Dat,
trace:[]
}
这是什么正确的语法? p>
UPDATED
目前这在Laravel中是不可能的,代码行位于第74行的vendor\symfony\var-dumper\Symfony\Component\VarDumper\Cloner\VarCloner.php中。
<$ p $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ as $ as $ h'] = $ v instanceof存根? spl_object_hash($ v):null;
}
然而,如果你需要一个hack,你可以用VarCloner.php替换上面的代码with:
if($ zval ['zval_isref'] =(isset($ queue [$ i] $ k]))?($ queue [$ i] [$ k] === $ cookie):false){
$ zval ['zval_hash'] = $ v instanceof存根? spl_object_hash($ v):null;
}
I have field names in my model that are numbers (I don't have control over it's names). When I try to get values from my model I get an Exception, before having those fields everything was fine
This worked fine till the number field were added.
Model::find($id)->name;
I get Trying to get property of non-object
I tried to hide them from my JSON with the protected hidden
array but neither '0'
, 0
or '{0}'
seems to work.
This is the error
{
"errors": "Sorry, something went wrong.",
"exception": "Symfony\\Component\\Debug\\Exception\\FatalErrorException",
"message": "Uncaught exception 'ErrorException' with message 'Trying to get property of non-object' in /home/david/workspace/papw2/jukebox/api/app/AlbumComment.php:18\nStack trace:\n#0 /home/david/workspace/papw2/jukebox/api/app/AlbumComment.php(18): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'Trying to get p...', '/home/david/wor...', 18, Array)\n#1 /home/david/workspace/papw2/jukebox/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2669): App\\AlbumComment->getUserAttribute(NULL)\n#2 /home/david/workspace/papw2/jukebox/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2681): Illuminate\\Database\\Eloquent\\Model->mutateAttribute('user', NULL)\n#3 /home/david/workspace/papw2/jukebox/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2435): Illuminate\\Database\\Eloquent\\Model->mutateAttributeForArray('user', NULL)\n#4 /home/david/workspace/papw2/jukebox/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2379): Illuminate\\Dat",
"trace": []
}
What is the correct syntax for this?
UPDATED
Presently this is not possible in Laravel as seen in this line of code located in vendor\symfony\var-dumper\Symfony\Component\VarDumper\Cloner\VarCloner.php at line 74.
if ($zval['zval_isref'] = $queue[$i][$k] === $cookie) {
$zval['zval_hash'] = $v instanceof Stub ? spl_object_hash($v) : null;
}
However if you need a hack you can replace the code above in VarCloner.php with:
if ($zval['zval_isref'] = (isset($queue[$i][$k])) ? ($queue[$i][$k] === $cookie) : false) {
$zval['zval_hash'] = $v instanceof Stub ? spl_object_hash($v) : null;
}
这篇关于从Laravel的雄辩模特中隐藏数字字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!