What is supposed to get stored in your avatar field ? Because its seems to work.
Jul 6, 2017
19
Level 1
Laravel does not update image.
I have a product form where I can add new products. All is work expect the uploading image where I got default.jpg value in mysql and I do not understand where is the problem. Can you help me, please?
table:
public function up()
{
Schema::create('items', function (Blueprint $table) {
$table->increments('pid');
$table->string('pslug')->nullable();
$table->string('ptitle');
$table->text('pdescription');
$table->string('pcat');
$table->integer('par');
$table->integer('pdb');
$table->string('pcikkszam');
$table->string('avatar')->default('default.jpeg');
$table->timestamps();
});
}
Form:
<div id="prodModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title"></h4>
</div>
<div class="modal-body">
<form class="form-horizontal" role="form">
<div class="form-group">
<div class="col-sm-10">
<input type="hidden" class="form-control" id="pid" disabled>
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<input type="hidden" class="form-control" id="pslug" disabled>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pname">Termék neve:</label>
<div class="col-sm-10">
<input type="name" class="form-control" id="ptitle">
</div>
</div>
<div class="form-group">
<label class="control-label" for="pcat">Termékkategória:</label>
<select id="pcat" name="pcat">
@foreach($categories as $category)
<option value="{{ $category->cid }}"> {{ $category->cname }} </option>
@endforeach
</select>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pcikksz">Ár:</label>
<div class="col-sm-10">
<input type="name" class="form-control" id="par">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pname">Darabszám:</label>
<div class="col-sm-10">
<input type="name" class="form-control" id="pdb">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pcikksz">Cikkszám:</label>
<div class="col-sm-10">
<input type="name" class="form-control" id="pcikkszam">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pcdescr">Leírás:</label>
<div class="col-sm-10">
<textarea id="pdescription" name="pdescription" class="form-control" rows="5" required></textarea>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pcdescr">Kép:</label>
<div>
<div class="col-sm-10">
<input type="file" id="avatar" name="avatar"><br />
</div>
</div>
</div>
</form>
<div class="deleteContent">
Are you Sure you want to delete <span class="iname"></span> ? <span
class="hidden piid"></span>
</div>
<div class="modal-footer">
<button type="button" class="btn actionBtn-btn" data-dismiss="modal">
<span id="footer_action_button-btn" class='glyphicon'> </span>
</button>
<button type="button" class="btn btn-warning" data-dismiss="modal">
<span class='glyphicon glyphicon-remove'></span> Close
</button>
</div>
</div>
</div>
</div>
Controller:
public function pstore(ProductFormRequest $request)
{
$pslug = uniqid();
$product = new Item();
$product->ptitle = $request->ptitle;
$product->pdescription = $request->pdescription;
$product->pcat = $request->pcat;
$product->par = $request->par;
$product->pdb = $request->pdb;
$product->pcikkszam = $request->pcikkszam;
$product->pslug = $pslug;
if($request->hasFile('avatar')){
$avatar = $request->file('avatar');
$filename = time() . '-' . $avatar->getClientOriginalExtension();
Image::make($avatar)->resize(300, 300)->save( public_path('/img/product_img/' . $filename) );
$product->avatar = $filename;
$product->save();
}
$product->save();
return response()->json($product);
}
public function pedit($pslug)
{
$product = Item::where('pslug', $pslug)->first();
return view('admin.termekszerk', compact('product'));
}
public function pupdate(ProductFormRequest $request, $pslug)
{
$product = Item::where('pslug', $pslug)->first();
$product->ptitle = $request->get('ptitle');
$product->pcat = $request->get('pcat');
$product->pcikkszam = $request->get('pcikkszam');
$product->par = $request->get('par');
$product->pdb = $request->get('pdb');
$product->pdescription = $request->get('pdescription');
if($request->hasFile('avatar')){
$avatar = $request->file('avatar');
$filename = time() . '-' . $avatar->getClientOriginalExtension();
Image::make($avatar)->resize(300, 300)->save( public_path('/img/product_img/' . $filename) );
$product->avatar = $filename;
$product->save();
}
$product->save();
return redirect(action('CategoriesController@index', $product->pslug))->with('status', 'A termék frissítve!');
}
Please or to participate in this conversation.