Laravel 4插入后一对多复制条目

时间:2014-08-21 19:42:31

标签: php mysql sql laravel eloquent

我有一对多关联用户 - >页面,我有这个代码:

    $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对不起我的坏人。

2 个答案:

答案 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