My problem is that I have 2 same routes for POST but each one of them is assigned to a different button.
If I run first form with action 'BuilderController@testing' everything works fine but other one 'BuilderController@postDB is giving me an error:
$image->getClientOriginalExtension();
Which is part of 'Buildercontroller@testing, so what I want to do is if I run @postDB ignore function @testing but if I run @testing ignore @postDB.
Blade:
@extends('layouts.master') @section('title', 'Website Builder') @section('content')
<meta name="csrf-token" content="" />
<div class=flex-container>
<div class="flex-item templates">
@foreach ($templates as $template)
<a class="content-link" href="">
<img class="template_img" src=""/>
</a> @endforeach
</div>
<span class="glyphicon glyphicon-chevron-left hiding_template left_side arrows"></span>
<span class="glyphicon glyphicon-chevron-right hiding_features right_side arrows"></span>
<div class="pace pace-inactive">
<div class="pace-progress" data-progress-text="100%" data-progress="99" style="width: 100%;">
<div class="pace-progress-inner"></div>
</div>
<div class="pace-activity"></div>
</div>
<div id="content-link2" class="flex-item2">
@if (session('status'))
<div id="mydiv" class="alert alert-success">
</div>
@endif
</div>
<div class="flex-item featuress">
<form id="upload_form" action="" enctype="multipart/form-data" role="form" method="POST">
<input type="hidden" name="_token" value="">
<input name="img" id="img" class="form-control filestyle margin images" data-input="false" type="file" data-buttonText="Upload Logo" data-size="sm" data-badge="false" onchange="submitImage();" />
</form>
<button class="btn btn-success form-control margin " data-toggle="modal" data-target="#myModalHorizontal">
Save Website
</button>
<!-- Modal -->
<div class="modal fade" id="myModalHorizontal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="myModalLabel">
Website Name
</h4>
</div>
<div class="modal-body">
<form action="" class="form-horizontal" role="form" method="POST">
<div class="form-group">
<input type="hidden" name="_token" value="">
<input type="hidden" id="code" name="newCode" value="">
<input type="hidden" id="name" name="newName" value="">
<label class="col-sm-2 control-label" for="website_name">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="website_name" placeholder="Website Name" />
</div>
</div>
</div>
<!-- Modal Footer -->
<div class="modal-footer">
<button type="button" class="form-control margin btn btn-danger" data-dismiss="modal">
Close
</button>
<button onClick=" updateDatabase(this);" type="submit" class="form-control margin btn btn-success" id="getRequest changes">
Save Website
</button>
</div>
</div>
</div>
</form>
</div>
</body>
<link href="" rel="stylesheet" type="text/css">
<link href="" rel="stylesheet" type="text/css">
<link href="" rel="stylesheet" type="text/css">
<script type="text/javascript" src="{!! asset('js/bootstrap-colorpicker.min.js') !!}">
</script>
<script type="text/javascript" src="{!! asset('js/bootstrap-formhelpers.js') !!}">
</script>
<script type="text/javascript" src="{!! asset('js/template.js') !!}"></script>
<script type="text/javascript" src="{!! asset('js/bootstrap-filestyle.min.js') !!}">
</script>
</html>
@endsection @show
Controller:
public function postDB(Request $request) {
$newName = $request->input('newName');
$newLat = $request->input('newCode');
$websites = new Website();
$websites->name = $newName;
$websites->html = $newLat;
$websites->save();
return redirect('template')->with('status', 'Website has been saved successfully!');
}
public function website($newName) {
// Return our "website" object
$html = Website::where('name', $newName)->first();
// Pass the contents of the "html" property to the view
return view('layouts/website', [
'html' => $html->html
]);
}
public function testing(Request $request) {
if($request->hasFile('img'));
{
$image = Input::file('img');
$filename = time() . '.' . $image->getClientOriginalExtension();
$path = public_path('images/' . $filename);
Image::make($image->getRealPath())->resize(200, 200)->save($path);
$file = $request->file('img');
return ['url' => url('images/' . $filename)];
}
}
JS:
var web_name;
function updateDatabase()
{
code2 = document.getElementById("content-link2").innerHTML;
var name = document.getElementById("website_name").value;
var newCode = document.getElementById('code').value = code2;
var newName = document.getElementById('name').value = name;
web_name = ($('#website_name').val());
console.log(newName);
console.log(newCode);
}
function submitImage(){
var fd = new FormData($("#upload_form")[0]);
fd.append( 'img', $('#img') );
$.ajax({
url:'template',
data: fd,
dataType:'json',
async:false,
type:'post',
processData: false,
contentType: false,
success: function (data) {
$("#image").attr("src", data.url);
}
});
}
Routes:
Route::get('template', 'BuilderController@templates');
Route::post('template', 'BuilderController@postDB');
Route::post('template', 'BuilderController@testing');
via Przemek