2017-02-14 58 views
2

我正在使用Laravel项目,并开始接收一些意外问题。意外的大小写敏感问题Laravel

我通过一个cron作业运行的脚本,并有一个if条件脚本:

if($bride->photographer == 'yes'){ 
    // Code goes here 
} 

的问题是,直到昨天一切都工作正常,但今天,它停止工作。当我开始调试时,我开始知道它不适用于值=“是”。如果价值从大写字母Y开始,则不符合条件。总之,它开始表现为区分大小写

我想知道昨天以来发生了什么变化。 如果现在不工作,那么为什么它以前工作?

+0

这个''yes''从哪里来?因为的确,区分大小写不仅仅是要改变 – Jerodev

+0

总是将字符串转换为小写字符与某些字符串比较 –

回答

1

用户输入的值与一些字符串时,始终遵循简单的规则:

if (strtolower(trim($bride->photographer)) == 'yes') { 
    // Code goes here 
} 
  • 修一修。
  • 将其转换为lowercaseuppercase
  • 将它比较。
+0

这很好,但它不是我的问题的答案,我想知道它为什么在以前工作? –

+0

检查什么** $ bride->摄影师**包含它 –

+0

它包含是的,我知道我应用的条件应该一直返回false,但我只是想知道为什么它以前工作,它现在停止工作,这是可以的,因为它由于区分大小写问题而失败,但是它在 –

0

使用用户输入字符串时最好做的事情是在比较之前将它们转换为大写或小写。所以你的情况,这将是最好的做这样的事情:

if (strtolower($bride->photographer) === 'yes') { 
    // Code goes here 
} 

strtolower将确保的$bride->photographer值总是小写。