播种和枢轴表?

时间:2014-02-10 12:23:03

标签: laravel-4

我正在尝试在种子中使用带有ID的数据透视表。

$id = DB::table('products')->insertGetId(array(
        array(
            'title' => 'Product A',
            'published' => 1
        )
    ));

    DB::table('product_user')->insert(array(
        array(
            'product_id' => $id,
            'user_id' => '9999999999'
        )
    ));

以上是最好的方法吗?通过insertGetId获取id然后将其放入数据透视表中是否有更好的方法?

上述方式也会出错:

 [ErrorException]                                                             
 preg_replace(): Parameter mismatch, pattern is a string while replacement i  
 s an array  

我怀疑$ id是一个数组,我怎么能让InsertGetId返回一个int?

1 个答案:

答案 0 :(得分:1)

好吧,你可以print_r它并寻找id属性,然后在第二个插页上调用$id->attribute

<强>可是...

“我自己”,我喜欢使用Eloquent。主要原因是:'因为太神有趣了?。真的,Eloquent它是我在编程世界中见过的最美丽的东西之一。我认为.NET是一个软件的主要部分(虽然我年轻而天真),但是一旦遇到Laravel / Eloquent,我变得如此 AMAZED

话虽如此,根据我的拙见,使用Eloquent是最好的方式!

我假设您有一个名为products的表和另一个名为users的表,并且您有一个product_user表来建立连接。使用Eloquent,您可以简单地执行此操作:

$user = User::find($user_id);
$product = Product::find($product_id);

$product->user->attach($user);

......我出于几个原因重新启动这种方法,但第一个原因是:更强可读

嗯,我希望我的答案不会过于冗长,并希望你和其他人。