Laravel:laravel模型中的$ casts无效

时间:2017-09-06 17:25:43

标签: php laravel

我有列id_a(varchar , primary key),其值为1 - 10.我想将该id_a列强制转换为整数,因此如果我执行查询\App\Model\Main::max('id_a');,则返回值10,就像我{{1}一样}}。我将此代码添加到我的模型中但没有工作(\ App \ Model \ Main :: max('id_a')仍然返回值9):

SELECT MAX(CAST(id_a as integer)) FROM mains

这是我模型的完整代码:

protected $casts = [
     'id_a' => 'integer',
 ];

1 个答案:

答案 0 :(得分:2)

您的$casts设置根本不会影响App\Model\Main::max('id_a')之类的通话 - 它会直接进入数据库。与在SQL中执行SELECT MAX(id_a) FROM mains相同。

如果要将id_a列用作整数,则它应该是数据库中的整数列。当前行为 - 将9排序为大于10 - 意味着它是一个字符串列。