Ale*_*nio 1 php attributes model laravel eloquent
我正在使用 Laravel 5.2 开发 web 应用程序,但有一个我无法解决的问题。
我有一个扩展 Eloquent 模型的模型,但是当我尝试使用“where”输出我的数据库表时,例如
\App\MyModel::where('id_table', 23)->first();
Run Code Online (Sandbox Code Playgroud)
它返回一个包含许多目前对我无用的信息的集合,例如“受保护”、“密钥类型”……并且我的表的数据位于“属性”下。按照laravel的指南,我看到每个人都像我一样简单地使用 where 然后用 输出$mytable->myvalue,但这当然对我不起作用。
这是我正在谈论的集合的屏幕截图:
当我使用类似的东西时,我怎么能总是得到属性"::where()"?
我试过了,getAttributes()但它给了我 500 错误。
如果你只想获得几个属性,可以做很多事情。可能第一种方式对你来说是最好的:
使用pluck():
\App\MyModel::where('id_table', 23)->pluck('id', 'name');
Run Code Online (Sandbox Code Playgroud)
使用select():
\App\MyModel::select('id', 'name')->where('id_table', 23)->get();
Run Code Online (Sandbox Code Playgroud)
get()与参数一起使用:
\App\MyModel::where('id_table', 23)->get(['id', 'name']);
Run Code Online (Sandbox Code Playgroud)
如果你想获得 Eloquent 集合,然后才构建一个只有属性的数组,你可以使用toArray():
\App\MyModel::where('id_table', 23)->get()->toArray();
Run Code Online (Sandbox Code Playgroud)
如果要为新集合获取某些属性,请pluck()在集合上使用:
$collection = \App\MyModel::where('id_table', 23)->get();
$names = $collection->pluck('name');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2599 次 |
| 最近记录: |