Я использую Laravel 5.2 и пытаюсь отправить форму в раскрывающемся списке. Хотя я могу это сделать. Но он всегда перенаправляет на функцию store, которая зарегистрирована как маршрут resource.

В моем файле routes.php маршруты определены следующим образом:

Route::group(['middleware' => ['web']], function () {

    Route::group(['middleware' => 'auth'], function () {

        Route::get('dashboard', function () {
            return view('dashboard.dashboard');
        });

        Route::get('getcurrency', 'QuoteController@getCurrency'); <!--------This is where i have problem--------->
        Route::resource('quotes','QuoteController');
    });

});

Я тоже пробовал назвать маршрут. Но это всегда приводит меня к store function

Вот как выглядит мое раскрывающееся меню:

<form method="post" action={{ action('QuoteController@getCurrency') }}>
                                <div class="form-group">
                                    <label class="control-label col-md-1">Name</label>
                                    <div class="col-md-5">      
                                        <select class="form-control select2me selectCurrency" name="user_id" onchange="this.form.submit()">
                                            @foreach($users as $user)
                                                <option value="{{$user->id}}">{{ $user->name }} 
                                                    @if(!empty($user->companyname))
                                                        ({{$user->companyname }})
                                                    @else
                                                        ({{$user->email}})
                                                    @endif
                                                </option> 
                                            @endforeach 
                                        </select>

                                    </div>
                                </div>
</form>

Я не могу понять, почему он всегда принудительно передает значение только функции store, когда я даже пытался упомянуть route, method, url и {{X4 }}. У меня не работает система.

Есть ли в laravel предопределенная тенденция использовать кнопку SUBMIT BUTTON только для определенной функции?

Вот какой у меня URL, когда у меня есть форма:

http://localhost/laravel/public/quotes

Кто-нибудь знает, почему это произошло? И как это исправить?

Спасибо!

0
user3201500 24 Фев 2016 в 09:37

2 ответа

Лучший ответ

Route.php

Route::group(['middleware' => ['web']], function () {

    Route::group(['middleware' => 'auth'], function () {

        Route::get('dashboard', function () {
            return view('dashboard.dashboard');
        });

        Route::post('getcurrency', 'QuoteController@getCurrency'); // make it post instead of get
        Route::resource('quotes','QuoteController');
    });

});

Пилка

<form method="post" action={{ url('getcurrency') }}>
  <input type="hidden" name="_token" value={{ csrf_token() }}/>
                                <div class="form-group">
                                    <label class="control-label col-md-1">Name</label>
                                    <div class="col-md-5">      
                                        <select class="form-control select2me selectCurrency" name="user_id" onchange="this.form.submit()">
                                            @foreach($users as $user)
                                                <option value="{{$user->id}}">{{ $user->name }} 
                                                    @if(!empty($user->companyname))
                                                        ({{$user->companyname }})
                                                    @else
                                                        ({{$user->email}})
                                                    @endif
                                                </option> 
                                            @endforeach 
                                        </select>

                                    </div>
                                </div>
</form>
0
Haseena P A 24 Фев 2016 в 06:53

Если вы используете ресурс маршрута, ваше сообщение будет автоматически отправлено в хранилище для получения дополнительных https: // laravel.com/docs/5.2/controllers#restful-resource-controllers

Если вы хотите изменить метод, измените действие, например

<form method="post" action='quotes'>

Затем необходимо написать маршрут для этого URL-адреса перед маршрутом ресурса

Route::group(['middleware' => ['web']], function () {

Route::group(['middleware' => 'auth'], function () {

    Route::get('dashboard', function () {
        return view('dashboard.dashboard');
    });

    Route::get('getcurrency', 'QuoteController@getCurrency'); <!--------This is where i have problem--------->
    Route::post('quotes','QuoteController@customMethod');
    Route::resource('quotes','QuoteController');
});

});
0
Imtiaz Pabel 24 Фев 2016 в 06:48