当前位置: 首页 > 知识库问答 >
问题:

Laravel路由资源更新方法

汪欣德
2023-03-14

我正在使用JWt all方法(索引、存储、显示等)在laravel中创建待办事项应用程序,路由资源中的所有方法(索引、存储、显示等)工作正常,除了结果更新外,其工作正常,并获得成功响应,但数据库中没有更改

**对不起,我的英语不好

应用程序编程接口。php

    Route::middleware('jwt.auth')->group(function () {
    Route::resource('/todo', 'API\TodoController');
});

BaseController。php

class BaseController extends Controller
{
    public function sendResponse($result,$message)
    {
        $response=[
            'success'=> true,
            'date' => $result,
            'message'=> $message
        ];
         return response()->json($response,200);
    }

    public function sendError($error,$errorMessages=[],$code=404)
    {
        $response=[
            'success'=> false,
            'message'=> $error
        ];

        if (!empty($errorMessages)) {
            $response['date']=$errorMessages;
        }
         return response()->json($response,$code);
    }}

TodoController。php

class TodoController extends BaseController
{
    .
    .
    .

public function update(Request $request, Todolist $todolist)
    {

        //
        $input = $request->all();
        $validator = Validator::make($input, [

            'title' => 'required | max:255',
            'content' => 'required | max:255',
            'status' => 'required | max:2',
            'start_date' => 'required  ',
            'end_date' => 'required  ',
        ]);

        if ($validator->fails()) {

            return $this->sendError('error validation', $validator->errors());

        }

        $todolist->title = $request->title;
        $todolist->content = $request->content;
        $todolist->status = $request->status;
        $todolist->start_date = $request->start_date;
        $todolist->end_date = $request->end_date;
        $todolist->save();
        return $this->sendResponse($todolist->toArray(), 'update successfully');

    }}

这是《邮差》的结果

https://i.stack.imgur.com/4oHqC.png

共有2个答案

慕容成文
2023-03-14

托多利斯特。php模型

   <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Todolist extends Model
{
    //
    protected $table='todolists';
    protected $fillable =[
        'title',
        'content',
        'status',
        'photo_id',
        'date_id',
        'start_date',
        'end_date',
        'user_id'
    ];
}

待办事项表

https://i.stack.imgur.com/GGr5Q.png

郭博涉
2023-03-14

你们应该在上课前参考模型

use App\Todolist;
class TodoController extends BaseController
{
    .
    .
    .

public function update(Request $request, Todolist $todolist)
    {

        //
        $input = $request->all();
        $validator = Validator::make($input, [

            'title' => 'required | max:255',
            'content' => 'required | max:255',
            'status' => 'required | max:2',
            'start_date' => 'required  ',
            'end_date' => 'required  ',
        ]);

        if ($validator->fails()) {

            return $this->sendError('error validation', $validator->errors());

        }


        $todolist->title = $request->title;
        $todolist->content = $request->content;
        $todolist->status = $request->status;
        $todolist->start_date = $request->start_date;
        $todolist->end_date = $request->end_date;
        $todolist->save();
        return $this->sendResponse($todolist->toArray(), 'update successfully');

    }}
 类似资料:
  • 我不认为这篇文章我如何覆盖laravel资源路由默认方法?解决了我的问题。 正常的资源路由是“索引”显示所有项目。我想做的是让“索引”显示一个特定ID的所有相关项目。 因此,当我从列表中选择一个教室时,我需要调用的索引操作,以显示该特定教室的所有人员,就像它的索引函数一样。 所以我替换了默认的资源路由 与 所以在我的控制器中,我有这样的内容: 在我的教室里,在一个特定的教室id上,我有这个 就我所

  • 资源路由 支持设置RESTFul请求的资源路由,方式如下: Route::resource('blog','index/blog'); 表示注册了一个名称为blog的资源路由到index模块的Blog控制器,系统会自动注册7个路由规则,如下: 标识 请求类型 生成路由规则 对应操作方法(默认) index GET blog index create GET blog/create create s

  • 我需要在我的项目中实现本地化。我添加了一个带有前缀的组。 中间件setlocale 路由器列表 一切都很完美。但有一个问题。当我打开路线时: http://127.0.0.1:8000/en/projects/1 (展览项目) 我犯了一个错误 传递给App\Http\Controllers\ProjectsController::show()的参数1必须是App\Project的实例,字符串为 我

  • 我知道资源控制器可以有以下方法 现在假设除了资源操作之外,我还需要执行以下操作: 用户尝试登录 管理员希望通过电子邮件/名字查找用户 用户通过slug请求帖子 资源控制器对上述功能无用吗?如果编程一个API,我显然想要索引,显示,编辑,创建,销毁... 是否可以路由到这两种类型的控制器?例如。 或者我应该忘记资源控制器而改用restful控制器吗?

  • 作为 laravel 极其重要的一部分,route 功能贯穿着整个网络请求,是 request 生命周期的主干。本文主要讲述 route 服务的注册与启动、路由的属性注册。本篇内容相对简单,更多的是框架添加路由的整体设计流程。 route 服务的注册 laravel 在接受到请求后,先进行了服务容器与 http 核心的初始化,再进行了请求 request 的构造与分发。 route 服务的注册——

  • 上下文我在Laravel8中工作,我使用DataTables插件来显示数据库中的记录。正如您将在代码中看到的,我使用Route::resource('animal','AnimalController')创建了所有要执行CRUD的路由。这将为销毁方法生成如下路径:animal/{id} 问题。当我按下特定记录的删除按钮时,记录会被删除,没关系,但是浏览器控制台会返回这个错误:“此路由不支持DELE