使用 JSON 解码 Laravel 检索特定数据



我是Laravel的新手。我需要使用 JSON 解码从数据库中检索特定数据。我目前正在使用模型$casts来处理 JSON 编码和解码。

这是我使用 json 编码的插入查询:

$request->validate([
'subject' => 'required|max:255',
'concern' => 'required'
]);
$issue = new Issue;
$issue->subject = $request->subject;
$issue->url = $request->url;
$issue->details = $request->concern;
$issue->created_by = $request->userid;
$issue->user_data = $request->user_data; //field that use json encode
$issue->status = 2; // 1 means draft
$issue->email = $request->email;
$issue->data = '';
$issue->save();

user_data包含{"id":37,"first_name":"Brian","middle_name":"","last_name":"Belen","email":"arcega52@gmail.com","username":"BLB-Student1","avatar":"avatars/20170623133042-49.png"}

这是我的输出:

{{$issue->user_data}}

我需要检索的只是first_namemiddle_namelast_name。我应该如何实现这一目标?提前谢谢你

!!!!

按照上面显示的代码,它只会将数据插入数据库。要检索数据,您可以使用我在下面写的查询生成器,也可以检查文档

$users = DB::table('name of table'(->select('first_name', 'middle_name', 'last_name'(->get((;

我建议使用资源。它真的非常有用。看看吧。它是一个可重用的类。您随时随地打电话。

php artisan make:resource UserResource

转到您是新创建的类App/Http/Resources/UserResource.php,并绘制要在响应中使用的列。

public function toArray($request) {
return [
"first_name" => $this->first_name,
"middle_name" => $this->middle_name,
"last_name" => $this->last_name
]
}

现在是您的控制器,您可以使用像 folow 这样的用户资源:

public function index()
{
return UserResource::collection(User::all());
}

或者插入数据后,您可以返回新添加的数据(f_name,l_name...

$user = new User;
$user->first_name= $request->first_name;
$user->middle_name= $request->middle_name;
$user->last_name= $request->last_name;
$user->save();
$user_data= new UserResource($user);
return $user_data;

最新更新