問題:GET /print-jobs/
を実行すると、コントローラーのindex
メソッドに正しくルーティングされます。私がPOST /print-jobs/
と言うとき、それは私のstore
メソッドにルーティングする必要があります。しかし、私のindex
メソッドにもルーティングされているようです。これは、私がApacheでLaravelを実行している私のプロダクション環境でのみ発生します。GETとPOSTリクエストは、Laravel 5.4の同じコントローラにルーティングします。
ルートコード:
Route::group(['prefix' => 'print-jobs'], function() {
Route::get('/', '[email protected]');
Route::get('/{printJob}', '[email protected]')->where(['printJob' => '[0-9]+']);
Route::post('/', '[email protected]');
...
}
関連するコントローラコード:今すぐ
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class PrintJobMasterController extends Controller {
/**
* Display all PrintJob models
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request) {
Log::info('PJMC::index: rendering index of all print jobs');
...;
}
/**
* Store a newly job request en masse
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request) {
Log::info("PJMC::store: creating new job");
...;
}
...;
}
、私は私のログに、私はGET /print-jobs/
を呼び出すときPJMC::index:
で始まるメッセージとPJMC::store:
ときで始まるメッセージを見ることを期待します私はPOST /print-jobs/
と呼んでいます。しかし、両方の時間は、ブラウザでこれを行うとき:index
方法にどちらの回のリクエストルート
[2017-06-09 10:27:17] local.INFO: PJMC::index: rendering index of all print jobs [2017-06-09 10:27:23] local.INFO: PJMC::index: rendering index of all print jobs
:私のブラウザから$.get('/print-jobs')
と$.post('/print-jobs/', {_token: window.Laravel.csrfToken, ...})
、私は私のログファイルに次を参照してください!私は自分のブラウザで自分のネットワーク履歴を調べました。要求は実際にGET
とPOST
として登録されています。これは、問題がバックエンドのどこかにあると考えています。しかし、私がLaravelのテストスイートを使ってこれらのルートを呼び出すと、何の問題もありません。
アイデア?前もって感謝します。
あなたはlaravelエラーやPHPのエラーログには何も見ていますか? – Adam
あなたの投稿リクエストをルートの上に置いてみてください!ルート::投稿が最初に行く! –
@AdamAエラーは表示されません。ログ内のそれらの行だけが私が得ているヒントです。 –