laravel возвращает строку json на локальном компьютере, но целое число на экземпляре экскаватора beanstalk

У меня странная проблема с aws, mysql, laravel и угловатой.

У меня есть бродячий экземпляр, работающий локально с обоими приложениями и базой данных, работающими на нем.

Я использую угловой на интерфейсе, поэтому, когда изображение загружается угловым, делается запрос на получение списка всех «целей», введенных пользователем. одним из полей в голах является цельStatus. это либо 0, либо 1, хранящиеся как целое число в таблице mysql.

угловые проверки, если это значение равно 0 или 1, и отображает и другую ячейку таблицы в зависимости от результата

<th ng-if="goal.goalStatus === '0'"><p class="text-danger">In Progress</p></th> <th ng-if="goal.goalStatus === '1'"><p class="text-success">Achieved</p></th> 

в инструментах chrome dev, когда я смотрю на результат ответа для этого запроса, я вижу, что returnStatus возвращается так же

 "goalStatus":"0" 

и угловые операторы if работают по назначению.

однако, когда я подталкиваю это приложение к среде разработки в эластичном beanstalk, который подключается к экземпляру mysql rds, который имеет те же самые миграции и просеивание на нем, dev tools показывает цельStatus, поскольку это

 "goalStatus":0 

и угловые условия if не выполняются, поэтому ни один из элементов не отображается

Таким образом, кажется, что на экземпляре эластичного beanstalk он возвращается как целое число, но на локальной машине он возвращается в виде строки. Я не знаю погоды, проблема будет в mysql, laravel или в другом месте.

есть идеи? Я включил миграцию laravel и классы семян для таблицы ниже на всякий случай

миграция

 use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; class CreateGoalsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('goals', function(Blueprint $table) { $table->increments('id'); $table->integer('userId'); $table->string('title'); $table->string('goalDesc'); $table->integer('goalStatus')->nullable(); $table->integer('bodyGoalId')->nullable(); $table->integer('strengthGoalId')->nullable(); $table->integer('distanceGoalId')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('goals'); } } 

сеялка

 <?php class GoalsTableSeeder extends Seeder { public function run() { // Uncomment the below to wipe the table clean before populating DB::table('goals')->truncate(); $now = date('Ymd H:i:s'); $goals = array(array( 'userId' => 1, 'title' => 'first goal title', 'goalDesc' => 'This should describe my goal in text form', 'goalStatus' => 0, 'bodyGoalId' => null, 'strengthGoalId' => null, 'distanceGoalId' => 1, 'created_at' => $now, 'updated_at' => $now), array( 'userId' => 1, 'title' => 'strength goal title', 'goalDesc' => 'This should describe my strngth goal in text form', 'goalStatus' => 0, 'bodyGoalId' => null, 'strengthGoalId' => 1, 'distanceGoalId' => null, 'created_at' => $now, 'updated_at' => $now), array( 'userId' => 1, 'title' => 'body goal title', 'goalDesc' => 'This should describe my body goal in text form', 'goalStatus' => 0, 'bodyGoalId' => 1, 'strengthGoalId' => null, 'distanceGoalId' => null, 'created_at' => $now, 'updated_at' => $now) ); // Uncomment the below to run the seeder DB::table('goals')->insert($goals); } } 

Таким образом, это, по-видимому, проблема с драйвером php mysql, возвращающим все поля в виде строк независимо от типа. источник

Мой awas-экземпляр beanstalk, похоже, настроен для учета этого, поэтому он возвращает строки и строки и ints как ints, тогда как моя бродячая настройка должна быть изменена для использования драйвера php5_mysqlnd вместо того, который был у нее, и это разрешило проблему