首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel5.2不能像“number”那样从DB读取模型属性类型(使用PHP7)

Laravel5.2不能像“number”那样从DB读取模型属性类型(使用PHP7)
EN

Stack Overflow用户
提问于 2016-02-26 18:21:48
回答 1查看 203关注 0票数 0

我的本地环境有个奇怪的问题。

如果我以json的身份返回Laravel,那么每个属性都返回为字符串,而不是数字或布尔值。

代码语言:javascript
复制
$j = Jobposition::find($id);
return $j;

如果我使用PHP5.5,那么返回类型是正确的。

在我的服务器上,它可以在PHP7上正常工作,所以我认为这是我的本地php设置。

下面是我是如何编译PHP 7.0.4的:

代码语言:javascript
复制
./buildconf --force
env YACC=`brew --prefix bison27`/bin/bison ./configure  --prefix="/usr/local/opt/phpng"  --with-config-file-path="/usr/local/etc/phpng"  --enable-bcmath  --enable-calendar  --enable-exif  --enable-ftp  --enable-gd-native-ttf  --enable-gd-jis-conv  --enable-mbstring  --enable-pcntl  --enable-sysvmsg  --enable-sysvsem  --enable-sysvshm  --enable-wddx  --enable-zip  --enable-json  --with-bz2  --with-curl  --with-iconv  --with-freetype-dir=`brew --prefix freetype`  --with-gd  --with-gettext=`brew --prefix gettext`  --with-gmp  --with-jpeg-dir=`brew --prefix gd`  --with-mcrypt=`brew --prefix mcrypt`  --with-mysqli=`brew --prefix`/bin/mysql_config  --with-openssl  --with-pdo-mysql=`brew --prefix mariadb`  --with-png-dir=`brew --prefix gd`  --with-zlib=`brew --prefix zlib`

make -j`sysctl -n hw.logicalcpu_max`

env INSTALL_ROOT=$PWD/phpng-pkg make install

pkgbuild  --root phpng-pkg  --identifier net.php.phpng  --version 7.0.4-dev  --ownership recommended  phpng-dev.pkg

根据以下教程:http://www.justinsilver.com/technology/install-php-7-0-phpng-on-mac-os-x/

我的发现是:编码工作正常-使用json_encode看起来很好。

解决方法是在模型中使用$casts属性。但是为什么要定义它,如果它应该是开箱即用的(我想知道问题所在;-)

谢谢斯特凡

更新29.02.2016:我太蠢了,我没有先检查它。这个问题与JSON无关!模型已经被填充为false,并且是不正确的。

代码语言:javascript
复制
App\Job\Company\Jobposition {#994
     id: "1",
     title: "Maxime natus.",
     salary: "3181",
     contact: "Aglae.Shanahan@yahoo.com",
     published: "1",
     approved: "1",
}
EN

Stack Overflow用户

发布于 2016-02-26 18:28:42

我也想到(大约一年前),当我在工作场所切换到一个dev服务器时,我的模型类型没有得到充分的返回。

原因是我在本地VM上安装了mysqlnd (PHP包),这有助于PHP为结果集确定合适的变量类型。

没有这一点,将每个类型作为字符串返回是完全没有问题的。

我看到您的配置调用包括mysqli驱动程序定义。如果不定义它就足够了,因为它是5.4中的缺省值(至少文档是这么说的,http://php.net/manual/de/mysqlnd.install.php)

当然,如果我们谈论的是一个MySQL数据库,这当然是合适的。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35658972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档