仍然在Laravel 4中找到我的腳,我有點不確定爲什麼這不起作用。Laravel 4 - 在使用hasMany關係時插入多條記錄
在L3我是能夠插入多條記錄的表是這樣的...
$comments = array(
array('message' => 'A new comment.'),
array('message' => 'A second comment.'),
);
$post = Post::find(1);
$post->comments()->save($comments);
但是當我現在做類似的或者被插入,而不外鍵的記錄,像這樣.. 。
$comments = array(
array('message' => 'A new comment.'),
array('message' => 'A second comment.'),
);
$post = Post::first();
$post->comments()->insert($comments);
或(和經過一些谷歌搜索),我嘗試以下方法,並得到一個preg_match() expects parameter 2 to be string, array given
$comments = new Comment(array(
array('message' => 'A new comment.'),
array('message' => 'A second comment.'),
));
$post = Post::first();
$post->comments()->save($comments);
以及我試過...->saveMany()
和...->associate()
,但我和最後一個例子有相同的問題。
在旁註中,我意識到我已將多維數組包裹在一個對象中,但似乎是正確的方法。我嘗試過但沒有做,但也失敗了。
我應該指出,我正在通過工匠運行種子命令。
編輯: 這是從日誌文件的完整preg_match
錯誤
[2013-11-27 16:43:39] log.ERROR: exception 'ErrorException' with message 'preg_match() expects parameter 2 to be string, array given' in /Applications/MAMP/htdocs/project/www/bootstrap/compiled.php:6315
saveMany()會導致很多正在執行的SQL查詢,可能會降低性能,請使用insert(),只需傳入不帶'new Comment'的簡單數組,插入將不會觸及父級。 –
爲什麼Laravel不夠聰明只是'更新註釋SET post_id = 10 where id in(3,6,23,56)'?似乎很微不足道...... –
如果您使用交易來提高性能,該怎麼辦? – malhal