从Laravel的雄辩模特中隐藏数字字段 [英] Hide number field from Eloquent model in Laravel

查看:206
本文介绍了从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆