2017-03-07 6 views
0

私の問題は、私は2つの同じ経路をPOSTに持っていますが、それぞれが異なるボタンに割り当てられていることです。一度に1つのPOST機能しか実行しない

私はアクションで最初のフォームを実行する場合は「BuilderController @テスト」すべてがうまくしかし、他の1「BuilderController @ postDBは私にエラーを与えている作品:

$イメージ - > getClientOriginalExtension();

これは 'Buildercontroller @ testing'の一部なので、@ postDBは@testing関数を無視して@postDBを実行すると、@ testDBを無視して@postDBを無視するとします。

ブレード:

@extends('layouts.master') @section('title', 'Website Builder') @section('content') 
<meta name="csrf-token" content="{{ csrf_token() }}" /> 
<div class=flex-container> 
    <div class="flex-item templates"> 

     @foreach ($templates as $template) 
     <a class="content-link" href="{{ asset($template->file)}}"> 
     <img class="template_img" src="{{ asset($template->image)}}"/> 
     </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"> 
     {{ session('status') }} 
    </div> 
    @endif 
    </div> 
    <div class="flex-item featuress"> 
    <form id="upload_form" action="{{ action('[email protected]') }}" enctype="multipart/form-data" role="form" method="POST"> 
    <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
    <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">&times;</span> 
         <span class="sr-only">Close</span> 
       </button> 
         <h4 class="modal-title" id="myModalLabel"> 
          Website Name 
         </h4> 
        </div> 
        <div class="modal-body"> 
         <form action="{{ action('[email protected]') }}" class="form-horizontal" role="form" method="POST"> 
          <div class="form-group"> 
           <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
           <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="{{asset('css/bootstrap-colorpicker.min.css')}}" rel="stylesheet" type="text/css"> 
     <link href="{{asset('css/bootstrap-formhelpers.min.css')}}" rel="stylesheet" type="text/css"> 
     <link href="{{asset ('//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css')}}" 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 

コントローラー:

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); 
     } 
    }); 
} 

ルート:

Route::get('template', '[email protected]'); 
Route::post('template', '[email protected]'); 
Route::post('template', '[email protected]'); 

答えて

1

2つの同じルートポストメソッドがあります。このように使用することはできません。 &投稿をlaravelで別々に扱います。

Route::post('template', '[email protected]'); 
Route::post('template2', '[email protected]') 
関連する問題