Day06-CRUD API 实作(六)CRUD 实作(下)

大家好~
今天要来完成我们留言的读取、更新与删除功能罗。

Controller

Read

查询全部留言
public function index()
{
    $messages = Message::with('user')->get();

    return response($messages, Response::HTTP_OK);
}
检视单一笔留言
public function show($messageId)
{
    $message = Message::with('user')->findOrFail($messageId);

    return response($message, Response::HTTP_OK);
}

查询的部分有分成两种功能,
分别是查询全部留言与检视单一笔留言,

在查询的时候用 with() 可以一起将关联的资料取出来喔,
虽然不特别使用 with() 也是可以获得有关联关系的资料就是了,
差异就下次再做说明吧~

Update

  • 流程:
    1. 验证 Request 表单
    2. 建立指定 Message 的 Model
    3. 更新 Message
    4. 回传 Response
public function update(Request $request, $messageId)
{
    $validated = $request->validate([
        'title' => 'required|string|max:50',
        'content' => 'required|string|max:255'
    ]);

    $message = Auth::user()->messages()->findOrFail($messageId);

    $message->update($validated);

    return response($messages, Response::HTTP_OK);
}

Delete

public function destroy($messageId)
{
    $message = Auth::user()->messages()->findOrFail($messageId);

    $message->delete();

    return response([
        'message'=>'message has deleted.'
    ],Response::HTTP_OK);
}

这样整个 CRUD 就都完成罗!

虽然功能都是正常可用的,
不过如果要调整回传的资料格式,
或者统一资料格式,
都还要在每个 function 中做调整,
这样好像有点麻烦呢...
那麽...
明天来介绍统一回传格式的方式吧!

今天差不多就先这样,
大家明天见啦~
若文章有任何问题,
还请大家不吝赐教!


<<:  Spring Framework X Kotlin Day 16 Why Kotlin

>>:  轻松小单元 - 范围要多广

Day 04 Python 进阶

这篇主要是讲一些比较深入的东西,偶尔才会碰到一次的东西,基本上是按照我现在碰到的机率由高至低排序的。...

[C 语言笔记--Day20] Condition Code 帮忙做出 C 语言的 if 语法 II

接续昨天的话题,继续来探讨 condition code 昨天说到了指令的运算结果会有改变 cond...

Day 21 实作路径结构

前言 今天我们要来开始写路径,也就是说在今天写完之後我们就可以把之前蓝图的注解取消了。 main_b...

Day11 永丰金API 回顾

透过前几天的内容,我们已经大概了解永丰金流api的流程, 以及对应的api所需参数和回传内容,并且提...

Day 12:封装 OkHttp

本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtu...