После того, как я разворачиваю свое веб-приложение Laravel на своем хосте, мой код не работал как локальный. У меня есть форма и POST
это маршрут, он вызывает контроллер, который обрабатывает любые запросы. Я хочу реагировать на каждый тип запроса, но Request::Method()
функция возвращает GET
.Laravel 5 - Request :: Method() возвращает неправильный тип запроса и Input :: all() возвращает пустые
Маршрут:
Route::any('/', [
'as' => 'root', 'uses' => '[email protected]']);
клинка:
<form action="{{ URL::route('root') }}" method="POST">
<input type="hidden" name="_token" value="{{{ csrf_token() }}}">
<input type="hidden" name="newsId" value="{{ $newsId }}">
<input type="hidden" name="orders" id="orders" value="">
<button class="btn" name="next">NEXT</button>
<button class="btn" name="save">SAVE</button>
</form>
Контроллер:
if (Request::isMethod('get')) {
$newsId = (Auth::user()->last_news_id % 100) + 1;
$sentences = News::find($newsId)->sentences;
return view('summarizer')->with(['sentences' => $sentences, 'newsId' => $newsId]);
} elseif (Request::isMethod('POST')) {
return 'post';
}
Также я использовал Request::Method()
и retures GET
за все время! Я тестировал эти коды в своем локальном хосте, и он отлично работает.
EDIT: Удивительно, что Input :: all() также возвращает пустое значение. Он работает в местном колодце.
Чтобы быть уверенным, проверьте вашу форму и проверьте, есть ли действительно 'метод =«POST»' как атрибут. Кроме того, возможно, вам нужно загладить '' get'' в вашей 'isMethod ('GET')' check. Вы никогда не знаете :) –
@ThomasVanderVeen прав, параметр должен быть «методом запроса верхнего уровня (GET, POST и т. Д.)». (исходные документы: http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.html#method_isMethod) –
Спасибо за ваш ответ. Я капитулировал их всех, но ничего не изменилось. –