一次只执行1个POST功能

时间:2017-03-07 12:16:19

标签: ajax laravel laravel-5 laravel-5.3 blade

我的问题是我有2条相同的POST路线,但每条路线都分配给不同的按钮。

如果我使用动作“BuilderController @ testing”运行第一个表单,一切正常,但其他一个'BuilderController @ postDB给我一个错误:

$图像 - > getClientOriginalExtension();

这是'Buildercontroller @测试的一部分,所以我想要做的是如果我运行@postDB ignore function @testing但是如果我运行@testing忽略@postDB。

刀片:

Pod::Spec.new do |s|
s.name             = 'YourProject'
s.version          = '0.9.1'
s.summary          = 'iOS 10 Music Appshadow blur imitation'

s.description      = <<-DESC
Your description
DESC

s.homepage         = 'https://github.com/.....'
s.license          = { :type => 'MIT', :file => 'LICENSE' }
s.author           = { '<YOUR NAME HERE>' => '<YOUR EMAIL HERE>' }
s.source           = { :git => 'https://github.com/....', :tag => s.version.to_s }

s.ios.deployment_target = '9.0'
s.source_files = '...*.{swift,png}'

end

控制器:

class func getImage(Named name : String,andExtension ext :String) -> UIImage?{

        if let bundle = Bundle(identifier: <YOUR_BUNDLE_IDENTIFIER>),
            let imageUrl = bundle.url(forResource: name, withExtension: ext){

            return UIImage(contentsOfFile: imageUrl.path)
        }
        return nil
    } 

JS:

@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('BuilderController@testing') }}" 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('BuilderController@postDB') }}" 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)];
        }
    }

1 个答案:

答案 0 :(得分:1)

有两种相同的路线后方法。我们不能这样使用。得到&amp;在laravel中对待后处理的方式不同。

Route::post('template', 'BuilderController@postDB');
Route::post('template2', 'BuilderController@testing')
相关问题