Пакет Visual Studio NuGet необходимо обновить для новой версии набора инструментов
У меня просто возникла проблема с подключением libpng с Visual Studio 2013. Проблема в том, что в файле пакета были только библиотеки для Visual Studio 2010 и 2012.
Правильное решение - надеяться, что разработчик выпустит обновленный пакет и затем обновит его, но он работал для меня, взломав дополнительную настройку для VS2013, указав на файлы библиотеки VS2012.
Я отредактировал пакет (в папке packages
внутри каталога решения), найдя packagename\build\native\packagename.targets
и внутри этого файла, скопировав все секции v110
. Я изменил v110
на v120
в полях условий только очень осторожно, чтобы пути с именами файлов были все как v110
. Это просто позволило Visual Studio 2013 подключиться к библиотекам на 2012 год, и в этом случае он работал.
Laravel иногда не поддерживает {!! Form::open(['url' => 'posts/store']) !!}
по соображениям безопасности. Вот почему произошла ошибка. Вы можете решить эту ошибку, просто заменив приведенный ниже код
{!! Form::open(array('route' => 'posts.store')) !!}
Код ошибки {!! Form::open(['url' => 'posts/store']) !!}
Правильный код {!! Form::open(array('route' => 'posts.store')) !!}
Мое подозрение заключается в том, что проблема заключается в определении маршрута. Вы определили маршрут как запрос «получить», но форма, вероятно, отправляет запрос «post». Измените определение маршрута.
Route::post('/validate', 'MemberController@validateCredentials');
Как правило, лучше использовать именованные маршруты (помогает масштабировать, если изменяется класс / класс контроллера).
Route::post('/validate', array('as' => 'validate',
'uses' => 'MemberController@validateCredentials'));
В форме используйте следующий
<?php echo Form::open(array('route' => 'validate')); ?>
Я столкнулся с этой проблемой, и другие ответы здесь были полезными, но я использую Route::resource
, который заботится о GET
, POST
и других запросах.
В моем случае я оставил свой маршрут как есть:
Route::resource('file', 'FilesController');
И просто изменил мою форму, чтобы отправить на функцию store
в моей FilesController
{{ Form::open(array('route' => 'file.store')) }}
Это устранило проблему, и я подумал, что это стоит указать в качестве отдельного ответа, так как различные другие ответы предполагают добавление нового маршрута POST
. Это вариант, но это необязательно.
Проблема заключается в том, что вы используете POST, но на самом деле вам нужно выполнить PATCH. Чтобы исправить это добавление
<input name="_method" type="hidden" value="PATCH">
Сразу после формы :: model line
Я столкнулся с ошибкой, проблема была в ФОРМЕ МЕТОД
{{ Form::open(array('url' => 'admin/doctor/edit/'.$doctor->doctor_id,'class'=>'form-horizontal form-bordered form-row-stripped','method' => 'PUT','files'=>true)) }}
, она должна быть такой
{{ Form::open(array('url' => 'admin/doctor/edit/'.$doctor->doctor_id,'class'=>'form-horizontal form-bordered form-row-stripped','method' => 'POST','files'=>true)) }}
хорошо, когда я столкнулся с этой проблемой, я столкнулся с двумя ошибками кода {!! Form::model(['method' => 'POST','route' => ['message.store']]) !!}
, я исправил ее, выполнив это {!! Form::open(['method' => 'POST','route' => 'message.store']) !!}
, поэтому просто для расширения i изменил форму model
на open
, а также маршрут, который неправильно помещен в квадратные скобки.
В моем случае это было потому, что моя форма отправлялась на маршрут с другим промежуточным программным обеспечением. Поэтому он заблокировал отправку информации на этот конкретный маршрут.
Вы получаете эту ошибку, потому что вы отправляете POST на маршрут GET.
Я бы разделил вашу маршрутизацию для «проверки» на отдельные маршруты GET и POST. Новые маршруты:
Route::post('validate', 'MemberController@validateCredentials');
Route::get('validate', function()
{
return View::make('members/login');
});
Тогда ваш метод контроллера может быть только
public function validateCredentials()
{
$email = Input::post('email');
$password = Input::post('password');
return "Email: " . $email . " and Password: " . $password;
}
<?php echo Form::open(array('action' => 'MemberController@validateCredentials')); ?>
по умолчанию, Form::open()
принимает метод POST
.
вы попали на ваши маршруты. измените его на post
в соответствующем маршруте.
или если вы хотите использовать метод get, добавьте параметр method
.
, например
Form::open(array('url' => 'foo/bar', 'method' => 'get'))
Моя проблема была не в том, что мои маршруты были настроены неправильно, но я ссылался на неправильный метод Form
(который я скопировал из другой формы). Я делал ...
{!! Form::model([ ... ]) !!}
(без указанной модели). Но я должен был использовать обычный метод open
...
{!! Form::open([ ... ]) !!}
Поскольку первый параметр model
ожидал реальной модели, он не получал ни одного из моих опций, которые я указывал. Надеюсь, это поможет кому-то, кто знает, что их маршруты правильные, но что-то еще не так.
Как правило, в используемом HTTP-глаголе есть ошибка, например: Вызов PUT-маршрута с запросом POST
У меня также была такая же ошибка, но у меня было отличное исправление, в моем XYZ.blade.php у меня было:
{!! Form::open(array('url' => 'services.store')) !!}
, которое дало мне ошибку, - я до сих пор не знаю почему, но когда я сменил его на
{!! Form::open(array('route' => 'services.store')) !!}
, он сработал!
Я думал, что стоит поделиться:)