【问题标题】:Retrieve specific data using JSON decode Laravel使用 JSON 解码 Laravel 检索特定数据
【发布时间】:2020-04-08 13:09:01
【问题描述】:

我是 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。我应该如何实现这一目标?提前谢谢你!!!!!!

【问题讨论】:

  • 何时收到所有用户数据?
  • 如果您使用过模型,您可以获得具体的详细信息,例如 Table::select('first_name','middle_name ')->where('id', 1)->get();跨度>

标签: mysql arrays json database laravel


【解决方案1】:

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

$users = DB::table('表名')->select('first_name', 'middle_name', 'last_name')->get();

【讨论】:

    【解决方案2】:

    我会推荐使用资源。它真的非常有用的 laravel 功能。看看这个。这是一个可重用的类。您可以随时随地拨打电话。

    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
     ]
    }
    

    现在是您的控制器,您可以使用 UserResource,如下所示:

    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;
    

    【讨论】:

      猜你喜欢
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      相关资源
      最近更新 更多