2015-04-22 299 views
1

我在Laravel 4命令中创建数据库迁移脚本。Laravel雄辩REPLACE

所有数据库迁移过程都很好,但我在更改用户前缀时遇到了困难:我需要将USER-JOHN-JB更改为USER-JOHN-OD,所有用户后缀都需要从“-JB”到'-OD'。

的代码,我有当前行是:

DB::table('users')->update(['username' => DB::raw("REPLACE(username, '-".$suffix."', '-".$thisSuffix."')")]); 

如果我运行它工作正常但是它并没有在命令工作REPL此代码。

望着日志生成的SQL查询是:

update `users` set `username` = REPLACE(username, "-JB 
", "-OD") 

出于某种原因,一个换行符被插入查询。我不确定这是否与问题有关。

有没有人知道如何解决这个问题? 任何帮助,非常感谢。

在此先感谢。

+1

'$ suffix'的值是多少?它似乎有一个换行符。 –

+0

$后缀应该是'-JB',我会检查是否有新行 – xonorageous

+0

你是对的。有关信息的后缀代码是这样的: $ result = array_reverse(explode(' - ',$ result)); $ suffix = $ result [0]; 围绕结果添加修剪修复了问题。 非常感谢。 – xonorageous

回答

0

正如Ben Harold指出的那样,问题来自于包含换行符的$后缀。添加trim()修复了问题。