Laravel哪里的方法在我的服务器上正常工作但在我的Mac上正常工作

时间:2016-08-16 19:07:09

标签: mysql laravel laravel-5 debian laravel-5.2

我有一个奇怪的问题,这行不会在我的服务器上获取任何记录,但在我的计算机上工作正常,mysql和php版本是相同的,当我将id字段转换为字符串它在服务器上工作时( Debian),但它有风险,因为我非常使用带有id的where语句。这是代码:

$myAnswers=Questioner::where('id',$questioner_id)->first()->getLinkedAnsweres()->where("subject_id",Auth::user()->id);

当我将其更改为此时,它正常工作(将id转换为字符串):

$myAnswers=Questioner::where('id',$questioner_id)->first()->getLinkedAnsweres()->where("subject_id",(string)Auth::user()->id);

subject_id和用户ID都是unsigned_integer,大小相同。

我该如何解决这个问题?我应该覆盖哪里的方法?或者是否有任何配置在查询中将unsigned int转换为字符串?

感谢

PS:表格结构:

users | CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `family` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `gender` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `default_password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `access_level` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'subject',
  `phone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `comments` longtext COLLATE utf8_unicode_ci,
  `project_limit` int(10) unsigned NOT NULL,
  `questioner_limit` int(10) unsigned NOT NULL,
  `created_by` int(10) unsigned DEFAULT NULL,
  `remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `users_username_unique` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |


 answers | CREATE TABLE `answers` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `question_id` int(10) unsigned NOT NULL,
  `selected_option` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `subject_id` int(10) unsigned NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |

0 个答案:

没有答案