2
我正在复制数据库行,并希望将新行作为对象返回。使用Laravel/Eloquent检索复制行中的对象
$new_foo = Foo::find($id)->replicate()->save();
print_r($new_foo);
这将返回1而不是我刚创建的新对象。思考?
我正在复制数据库行,并希望将新行作为对象返回。使用Laravel/Eloquent检索复制行中的对象
$new_foo = Foo::find($id)->replicate()->save();
print_r($new_foo);
这将返回1而不是我刚创建的新对象。思考?
在您的代码中,您实际上是保存从save()
方法返回的值,而不是复制的模型。
你需要让你的代码保存复制的模型略有变化成$new_foo
$new_foo = Foo::find($id)->replicate();
$new_foo->save();
dd($new_foo);
save()方法返回boolean
。
你知道为什么它需要在一个新的线上?我以前就知道这一点,但我无法在文档中看到它为什么必须这样说。 – joeyfb
@JoeyB因为''replicate()''方法返回创建的对象,''save()''方法返回''boolean''。 –
它似乎有点反直觉。谢谢! – americanknight