Laravel 5 在Elount中返回和访问JSON字段
我有一个名为EmploymentApplication的模型,当有人提交申请时,它使用JSON字段保存所有提交的表单数据。该字段简称为“数据”。我正在研究资源控制器的“索引”方法。我只想返回id、名字和姓氏(在“data”JSON字段中) 我正试图在Tinker中找到答案(目前数据库中只有一个应用程序):Laravel 5 在Elount中返回和访问JSON字段,laravel-5,Laravel 5,我有一个名为EmploymentApplication的模型,当有人提交申请时,它使用JSON字段保存所有提交的表单数据。该字段简称为“数据”。我正在研究资源控制器的“索引”方法。我只想返回id、名字和姓氏(在“data”JSON字段中) 我正试图在Tinker中找到答案(目前数据库中只有一个应用程序): $result=\App\Models\EmploymentApplications\EmploymentApplication::all(['id','data->fname','data-
$result=\App\Models\EmploymentApplications\EmploymentApplication::all(['id','data->fname','data->lname'])
返回:
Illuminate\Database\Eloquent\Collection {#888
all: [
App\Models\EmploymentApplications\EmploymentApplication {#881
id: 1,
`data`->'$."fname"': ""Betty"",
`data`->'$."lname"': ""Sue"",
},
],
}
因此,它返回了正确的数据。让我困惑的是如何从这里访问数据->fname和数据->lname
$result[0]->id
工作正常
$result[0]->(backtick)数据(backtick)->'$“lname”
抛出:
PHP分析错误:语法错误,意外的“`”,第1行应为T_字符串或T_变量或“{”或“$”
访问这些属性的正确方法是什么
我知道我可以在从控制器返回结果之前使用array_map来清理结果,但是这里的最佳实践是什么
谢谢。使用列别名:
$result=EmploymentApplication::all(['id','data->fname as fname','data->lname as lname']);
$result[0]->fname
$result[0]->lname
我不确定这是否是您的意思,但如果我使用的是tinker并希望从我的数据库中获取信息,这就是我使用的
DB::select("SELECT id, fname, lname FROM EmploymentApplication")
或者如果你正在寻找一个特定的id
DB::select("SELECT id, fname, lname FROM EmploymentApplication WHERE id=1")
太好了。这就是我想要的答案。非常感谢。