Intereting Posts
оставить пользователя вошедшим в систему, когда он снова зайдет на ту же страницу? mysql & php: временные / виртуальные идентификаторы для результатов запроса? Как обновить значение конкретного ключа в ассоциативном массиве в PHP? Внедрение аутентификации RESTful API с использованием токенов (Yii / Yii2) Мне действительно нужно сделать mysql_close () Использование zipArchive addFile () не добавит изображения в zip Как включить сжатие GZip на сервере XAMPP Как увеличить мои «продвинутые» знания PHP дальше? (быстро) XPATH не работает над HTML Как определить, переносится ли файл через ftp PHPUnit: Как утверждать, что класс расширяет другой класс? PHP или Javascript: просто удалите и замените HTML-код Ошибка wsdl: нет правильного разделения заголовков и документа Пароль не совпадает после шифрования с использованием функций crypt () и password_hash () как извлечь текст из элемента html по id и назначить переменной php?

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 вместо того, который был у нее, и это разрешило проблему