метод обновления ресурса маршрута laravel - PullRequest
0 голосов
/ 22 октября 2018

Я работаю над созданием приложения в laravel с помощью метода JWt all (index, store, show ..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

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

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

0 голосов
/ 22 октября 2018

Вы должны обратиться Модель до класса

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

    }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...