2015-04-22 297 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()修復了問題。