【问题标题】:laravel route resource update methodlaravel 路由资源更新方法
【发布时间】:2018-10-22 21:19:15
【问题描述】:

我正在使用 JWt 在 laravel 中创建待办事项应用程序 路由资源中的所有方法(索引、存储、显示 ..etc)都运行良好,除了更新 结果它运行良好并获得成功响应,但它在数据库中没有变化

**抱歉我的英文不好

这是我的短代码

api.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

【问题讨论】:

  • 请添加邮递员结果。
  • 对不起,你可以在这里找到它i.stack.imgur.com/4oHqC.png
  • 安装了使用补丁
  • @ShaielndraGupta 我收到此错误:Illuminate\Database\QueryException: SQLSTATE[HY000]: 一般错误:1364 Field 'user_id'没有默认值(SQL:插入todolists(title,content,status,start_date,end_date,updated_at,created_at)值(学习 laravel api UPDATE,看教程学习laravel api UPDATE, 0, 2018-11-02, 2019-12-02, 2018-10-22 13:06:20, 2018-10-22 13:06:20))跨度>
  • 你能分享你的 todo 模型细节和数据库表吗

标签: php laravel laravel-5 laravel-5.6


【解决方案1】:

你应该在上课前参考模型

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');

    }}

【讨论】:

  • 是插入还是更新?如果更新,你应该使用where条件找到你想要的记录,然后再次尝试更新。
  • 我收到这个错误:Illuminate\Database\QueryException: SQLSTATE[HY000]: 一般错误:1364 Field 'user_id'没有默认值(SQL:insert into todolists (title, content, status, start_date, end_date, updated_at, created_at) 值(学习laravel api UPDATE,看学习laravel api UPDATE教程,0, 2018-11 -02, 2019-12-02, 2018-10-22 13:06:20, 2018-10-22 13:06:20))
  • 是更新了怎么用? $todolist = TodoLIst::find($id) ?
【解决方案2】:

TodoList.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

【讨论】:

    猜你喜欢
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 2015-10-14
    • 2016-03-03
    相关资源
    最近更新 更多