我有一对多关联用户 - >页面,我有这个代码:
$user_id = Auth::user()->id;
foreach ($pages_array['data'] as $page) {
$page_record = new Page();
$page_record->name = $page->name;
$page_record->access_token = $page->token;
$page_record->page_id = $page->id;
User::find($user_id)->pages()->save($page_record);
}
但是当我试图插入它们时,我得到SQLSTATE [23000]:完整性约束违规:1062重复输入...
我的问题是:如果db中的记录不存在则如何插入记录并在存在时跳过插入?非常感谢
p.p对不起我的坏人。
答案 0 :(得分:0)
$page_record = new Page();
$page_record->name = $page->name;
$page_record->access_token = $page->token;
$page_record->page_id = $page->id;
您正在创建新页面,但在保存之前,您尝试将page_id
属性设置为id
属性,在您调用save
之前,该属性将不存在页面记录。您收到错误是因为它因此而尝试为每个null
列插入page_id
。
答案 1 :(得分:0)
您可以轻松使用laravel验证。设置规则时,您可以告诉您哪个列必须是唯一的。 http://laravel.com/docs/4.2/validation