我正在尝试在种子中使用带有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?
答案 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);
......我出于几个原因重新启动这种方法,但第一个原因是:更强可读。
嗯,我希望我的答案不会过于冗长,并希望你和其他人。