Reputation: 11
I'm work on create to-do app in laravel with JWt all method (index,store,show ..etc) in route resource works well except update in result its work well and get success response but its not change in database
** sorry my english is not good
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');
}}
this is results in postman
https://i.sstatic.net/4oHqC.png
Upvotes: 1
Views: 3164
Reputation: 11
TodoList.php Model
<?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'
];
}
todo table
https://i.sstatic.net/GGr5Q.png
Upvotes: 0
Reputation: 698
You should refer Model before class
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');
}}
Upvotes: 2