php - Laravel CRUD with Resources API Controller not trigger Request data
one text
I'm just starting to learn here using the Resource Controller API at Laravel.
In this case I managed to do all the commands except Update data.
It seems that the Request Data in this update method is not called and remains empty.
Here's my File Controller.
<?php
namespace App\Http\Controllers\API\Admin;
use Illuminate\Http\Request;
use Storage;
use Image;
use App\Model\LoadScreen;
use App\Http\Controllers\API\ApiController;
class LoadScreenController extends ApiController
{
protected $request;
protected $posted;
public function __construct(Request $request)
{
$this->request = $request;
$this->posted = $this->request->except('_token', '_method');
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$splash = LoadScreen::findByHashedId($id);
if ($splash) {
$data = $request->all();
if ($this->request->hasFile('image')) {
$image = $data['image'];
$filename = md5($image . time()) . '.png';
$data['image'] = Storage::disk('public')->put($filename, file_get_contents($image));
$path = 'assets/img/loadScreen/' . $filename;
$intervention = Image::make($image)->fit(1080, 2248, function ($constraint) {
$constraint->aspectRatio();
})->save($path);
$data['image'] = $path;
}
foreach ($data as $key => $value) {
$this->posted[$key] = $value;
}
$splash->save($this->posted);
return $this->successResponse('success', $splash, 200);
}
return $this->errorResponse('failed', 400);
}
}
And Route file.
Route::resource('loadScreen', 'LoadScreenController');
Route List.
| | GET|HEAD | admin/v1/loadScreen | loadScreen.index | App\Http\Controllers\API\Admin\LoadScreenController@index
| | POST | admin/v1/loadScreen | loadScreen.store | App\Http\Controllers\API\Admin\LoadScreenController@store
| | GET|HEAD | admin/v1/loadScreen/create | loadScreen.create | App\Http\Controllers\API\Admin\LoadScreenController@create
| | DELETE | admin/v1/loadScreen/{loadScreen} | loadScreen.destroy | App\Http\Controllers\API\Admin\LoadScreenController@destroy
| | GET|HEAD | admin/v1/loadScreen/{loadScreen} | loadScreen.show | App\Http\Controllers\API\Admin\LoadScreenController@show
| | PUT|PATCH | admin/v1/loadScreen/{loadScreen} | loadScreen.update | App\Http\Controllers\API\Admin\LoadScreenController@update
| | GET|HEAD | admin/v1/loadScreen/{loadScreen}/edit | loadScreen.edit | App\Http\Controllers\API\Admin\LoadScreenController@edit
I have tried to return the value of the Request. But still there is no Request anything from the API.
I'm here using the PUT Method in Postman to update data.
Here I use Postman to test it.
I hope someone can explain why that happened.
Thank you very much
Source