php - Laravel - 以boolean身份返回的字符串

时间:2017-11-20 15:15:47

标签: laravel laravel-5 eloquent laravel-5.4

型号:PlayerResult

protected $fillable = ['result']

result是db

中的字符串(varchar(191))

db中的保存值是'win',例如,当通过eloquent访问时返回为true(布尔值)。

$var = PlayerResult::where('event_id', $event->id)->whereNotIn('player_id', [$player->id])->first();

dd($var)的{​​{1}}结果为真,attributes结果为'胜'

我尝试了(在模型中)但仍然相同......

那么为什么它以布尔值的形式返回?以及如何解决它?感谢

修改

我认为@TimLewis解决了这个问题,但即使我将列名重命名为随机名,仍然存在这个奇怪的问题。 将original添加到查询后,->select('result AS exampleVariable')会返回result,但true会返回exampleVariable - 所以我认为列的名称有问题,但问题仍未解决甚至我改名那栏......

1 个答案:

答案 0 :(得分:1)

确保您没有以下功能:

function getResultAttribute

function result

你也可能有兴趣看看

function toArray()

方法,因为它可以在返回数组之前进行一些强制转换。

如果它们不在您的模型中,则应验证模型中使用的任何自定义特征,因为这些特征可能会在这些特征中定义。