From e661ce344127ca8acd1300746c5132098578fab7 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 20 Sep 2017 17:12:43 +0200 Subject: Use POST for long queries; change request to TEXT type for the same reason --- app/Http/Controllers/VerbController.php | 12 ++++---- composer.json | 3 +- .../2017_09_20_150615_make_request_text.php | 32 ++++++++++++++++++++++ public/js/hebrewparsetrainer.js | 2 ++ resources/views/trainer.blade.php | 2 ++ routes/web.php | 2 +- 6 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 database/migrations/2017_09_20_150615_make_request_text.php diff --git a/app/Http/Controllers/VerbController.php b/app/Http/Controllers/VerbController.php index 59289c1..042bfe2 100644 --- a/app/Http/Controllers/VerbController.php +++ b/app/Http/Controllers/VerbController.php @@ -33,14 +33,14 @@ use Illuminate\Support\Facades\Validator; class VerbController extends Controller { public function random() { - $verbs = Verb::where('active', 1)->get(); + $verbs = Verb::where('active', 1); foreach (Input::get() as $col => $val) { - $val = explode(',', $val); - $verbs = $verbs->filter(function(Verb $item) use ($col, $val) { - return in_array($item->getAttribute($col), $val); - }); + if ($col == '_token') + continue; + $vals = explode(',', $val); + $verbs = $verbs->whereIn($col, $vals); } - $verb = $verbs->random(); + $verb = $verbs->get()->random(); $log = new RandomLog(); $log->request = json_encode(Input::get()); diff --git a/composer.json b/composer.json index 1d24a6a..7f8200c 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,8 @@ "php": ">=5.6.4", "laravel/framework": "5.3.*", "twbs/bootstrap": "^3.3", - "components/jquery": "^2.1" + "components/jquery": "^2.1", + "doctrine/dbal": "^2.5" }, "require-dev": { "fzaninotto/faker": "~1.4", diff --git a/database/migrations/2017_09_20_150615_make_request_text.php b/database/migrations/2017_09_20_150615_make_request_text.php new file mode 100644 index 0000000..4ccf82b --- /dev/null +++ b/database/migrations/2017_09_20_150615_make_request_text.php @@ -0,0 +1,32 @@ +text('request')->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('random_logs', function (Blueprint $table) { + // + }); + } +} diff --git a/public/js/hebrewparsetrainer.js b/public/js/hebrewparsetrainer.js index e5666be..775285d 100644 --- a/public/js/hebrewparsetrainer.js +++ b/public/js/hebrewparsetrainer.js @@ -155,7 +155,9 @@ $(document).ready(function(){ var roots = $('select[name="root"]').val(); $.ajax('verb/random/', { + method: 'POST', data: { + _token: $('#csrf').val(), stem: $.makeArray(stems).join(), tense: $.makeArray(tenses).join(), root: $.makeArray(roots).join() diff --git a/resources/views/trainer.blade.php b/resources/views/trainer.blade.php index 70f1f3d..82cfe02 100644 --- a/resources/views/trainer.blade.php +++ b/resources/views/trainer.blade.php @@ -8,6 +8,8 @@ use HebrewParseTrainer\Tense; @section('sidebar')