【发布时间】:2016-07-25 21:42:03
【问题描述】:
我需要通过表单一次恰好存储三个页面。我想以与模型 save() 方法类似的方式保存,因为这会自动更新记录时间戳。
如何同时处理多条记录?
我的页面模型:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Page extends Model{
protected $table = 'simple_pages';
}
我的代码:
public function createPages(Request $request){ // I use Page at the top
$data = [
[
'title'=> $request->first,
'content'=> $request->firstCont
],[
'title'=> $request->second,
'content'=> $request->secondCont
][
'title'=> $request->third,
'content'=> $request->thirdCont
]
];
Page::unguard();
$pages = new Page($data);
$pages->save(); // Something like this would be amazing
Page::reguard();
}
注意:我强烈反对创建多个 Page 模型实例,然后循环它们以分别保存它们。另外,我不想使用数据库插入,因为它不会自动更新记录时间戳。
【问题讨论】:
-
我知道这是一个老问题,但解决方案是
Page::insert($data)。看到这个答案:stackoverflow.com/a/29723968/172790
标签: eloquent laravel-5.2 mass-assignment