Ошибка Laravel: создание объекта по умолчанию из пустого значения

Я пытаюсь обновить запись в базе данных. Я пытаюсь обновить уже зарегистрированный продукт, затем я провожу исследование и затем создаю несколько объектов для сохранения, проблема в том, что laravel возвращает сообщение об ошибке, предупреждающее, что я пытаюсь создать объект с нулевым значением, и я передавая значение для него. Следует коду ниже

введите описание изображения здесь

модель

введите описание изображения здесь

Я могу't resolve this error, i need some help!!!

public function edit()
{
$idProduct = Input::get('pid');

$produto = ProductModel::where('id', $idProduct)->first();

$nome = Input::get('eNome');
$descricao = Input::get('eDescricao');
$userID = Auth::user()->id;

$produto->nome = $nome;
$produto->descricao = $descricao;
$produto->users_id = $userID;

if (Input::hasFile('eFoto'))
{
$file = Input::file('eFoto');

$fileNameUniq = uniqid();
$destinationPath = public_path().'assets/admin/gallery/';


$extension = pathinfo($file->getClientOriginalName(), PATHINFO_EXTENSION);

$fileName = uniqid();
if(move_uploaded_file($file, 'assets/admin/gallery/'.$fileName.'.'.$extension)){
$produto->foto = $fileName.'.'.$extension;
}

}

$produto->save();

return Redirect::back()->with(['message' => 'Produto alterado com sucesso!']);
}

Маршруты:

Route::resource('/produto','admin\ProductController@index',['only' => 'index']);
Route::get('/produto/editar/ativar','admin\ProductController@activeProduct',['only' => 'activeProduct']);
Route::get('/produto/editar/desativar','admin\ProductController@disableProduct',['only' => 'disableProduct']);
Route::get('/produto/editar/{id}', array('as' => 'editProduct', 'uses' => 'Admin\ProductController@editProduct'));
Route::get('/produto/excluir','admin\ProductController@destroy',['only' => 'destroy']);
Route::any('/produto/add','admin\ProductController@store',['only' => 'store']);
Route::post('/produto/editar','admin\ProductController@edit',['only' => 'edit']);

Посмотреть

<div class="modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">Editar produto</h4>
</div>
<div class="modal-body">
<link href="http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700" rel='stylesheet' />

<!-- The main CSS file -->
<link href="{{URL::asset('/')}}assets/admin/uploader/css/style.css" rel="stylesheet" />
<!--<form id="upload" method="post" action="app\controllers\admin\GalleryController@store" enctype="multipart/form-data">-->

{!! Form::open(['id' => 'product', 'method' => 'POST', 'enctype' => 'multipart/form-data', 'files' => true, 'action' => 'admin\ProductController@edit']) !!}
<div class="clearfix">
{!! Form::text('eNome', $eProduct->nome,['class' => 'form-control', 'required' => 'required']) !!}
</div>
<br>
<div class="row">
<div class="form-group foto col-xs-12">
<label>Foto atual: <a href="{{URL::asset('/')}}assets/admin/gallery/{{$eProduct->foto}}"><img src="{{URL::asset('/')}}assets/admin/gallery/{{$product->foto}}" width="100%" height="300px" class="user-image" alt="Imagem"/></a></label>
<br>
<label>Selecione uma nova foto:</label>
<input class="form-control" type="file" name="eFoto" value="" />
</div>
</div>
<br>
<div class="clearfix">
{!! Form::textarea('eDescricao', $eProduct->descricao,['class' => 'form-control', 'placeholder' => 'descricao', 'required' => 'required']) !!}
</div>
<br>

{!! Form::close() !!}
</div>
<div class="modal-footer">
<!--<button type="button" class="btn btn-default pull-left" data-dismiss="modal">Fechar</button>-->
<a class="btn btn-success pull-left"  href="{{URL::to('/yziadmin/produto')}}">Fechar</a>
{!! Form::hidden('pid', $eProduct->id) !!}
{!! Form::submit('Salvar', ['name'=>'btnsave', 'class'=>'btn btn-success pull-right', 'form'=>'product']) !!}
<!--<button type="button" class="btn btn-primary">Finalizar</button>-->
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->

0

Решение

положить ваши

{!! Form::close() !!}

под вашим

{!! Form::hidden('pid', $eProduct->id) !!}

так что это будет опубликовано.

1

Другие решения

используйте поиск вместо первого.

$produto = ProductModel::find($idProduct);
$produto->name = $name;
$produto->save();

если вы хотите использовать обновление

 $produto = ProductModel::where('id', $idProduct)->update([your input content]);
2

По вопросам рекламы [email protected]