Я пытаюсь отредактировать категорию в формате JSON с помощью метода PUT, поэтому я использую библиотеку guzzleHttp для анализа запросов и ответов json с помощью laravel 5.5.
Мои методы POST, GET работают нормально, когда я пытаюсь получить или вставить данные на свой сервер, но я получаю сообщение об ошибке в методе PUT & DELETE.
Я получаю два типа ошибок:
localhost в настоящее время не может обработать этот запрос. ОШИБКА HTTP 500
Недостаточно памяти - Фатальная ошибка: Недостаточно памяти (выделено 1472200704) (попытка выделить 176128 байт)
Ошибка консоли:
Эти ошибки возникают не вместе, а одна за другой, если я запрашиваю дважды подряд.
Я пытался изменить выделенную память, но это не сработало!
Вот мои процедуры для обработки запроса:
Мой контроллер :
public function update(Request $request, $id)
{
// get the inputs
$inputs = [
"cat_id" => $id,
"cat_name" => $request->input('cat_name'),
"cat_slug" => $request->input('cat_slug'),
"cat_description" => $request->input('cat_description'),
"cat_parent_id" => $request->input('cat_parent_id')
];
// post to the database
$response = $this->categories->update($id, $inputs);
if($response['success']){
$message = $response['message'];
Session::flash('success', 'Category is successfully saved !'.' Server Response Message : '.$message);
return redirect()->route('categories.index');
}else{
$message = $response['message'];
Session::flash('success', 'Category is not successfully saved !'.' Server Response Message : '.$message);
return redirect()->route('categories.index');
}
/////////////////////////////////////////////////
// If the edit page should be shown
//return redirect()->route('categories.edit', $id);
}
Мой репозиторий :
public function update($id, $category){
return $this->update("categories/{$id}", $category);
}
И мой собственный GuzzleHttpRequest.php:
protected function update($url, $data){
$formatted_data = json_encode($data);
$request = $this->client->request('PUT', $url, [
'body' => $formatted_data
]);
$response = json_decode( $request->getBody()->getContents() , true );
return $response;
}
Мой сервер принимает входные данные в формате JSON: https://rest-banai.herokuapp.com/сильный>
Отредактировано:
И моя форма редактирования:
{!! Form::open(['route' => ['categories.update', $category['cat_id']], 'method' => 'PUT', 'data-parsley-validate' => '']) !!}
<div class="form-group">
{{ Form::label('cat_name', 'Name:') }}
{{ Form::text('cat_name', $category['cat_name'], ['class' => 'form-control', 'placeholder' => 'Enter category name ...', 'required' => '', 'maxlength' => '50']) }}
</div>
<div class="form-group">
{{ Form::label('cat_slug', 'Slug:') }}
{{ Form::text('cat_slug', $category['cat_slug'], ['class' => 'form-control', 'placeholder' => 'Enter a slug word ...', 'required' => '', 'maxlength' => '50', 'data-parsley-type' => 'alphanum']) }}
</div>
<div class="form-group">
{{ Form::label('cat_description', 'Description:') }}
{{ Form::textarea('cat_description', $category['cat_description'], ['class' => 'form-control', 'rows' => '3', 'placeholder' => 'Enter description of the category ...', 'maxlength' => '255']) }}
</div>
<div class="form-group">
{{ Form::label('cat_parent_id', 'Parent Category:') }}
<br />
{{ Form::select('cat_parent_id', $cat_array, null, ['placeholder' => $cat_parent_name]) }}
<br />
</div>
<div class="pull-right">
{{ Form::submit('SAVE', ['class' => 'btn btn-block btn-success btn-sm']) }}
</div>
{!! Form::close() !!}
Я не уверен, что я здесь делаю неправильно, любой эксперт, пожалуйста, помогите мне с проблемой, так как я новичок в Guzzle и JSON, работающем с Laravel, это будет оценено по достоинству. И если здесь что-то неясно, предложите отредактировать.
Заранее спасибо !