laravel动态增加的关联元素可以不用重复查询即可得到么

比如有个1对多关系,一个Order对应多个OrderDetail,Order模型有个1对多的关系orderDetail,OrderDetail模型有个belongsTo的关系order

// 假如这个orderDetail有两条
$order = Order::with('orderDetail')->find(33);
// 这里会打印出两条
dd($order->orderDetail);

// 有个奇怪的需求需要动态增加orderDetail, 上面的代码就会变成类似下面这样:
$order = Order::with('orderDetail')->find(33);
$order->orderDetail->create([
    xx => xx
]);
// 或者变成下面这样:
$orderDetail = new OrderDetail;
$orderDetail->xx = xx;
$orderDetail->save();

$orderDetail->order()->associate($order);

// 但是这地方还是会打印出两条,请问如何打印出刚才新增的一条呢,也就是输出3条
// 如果重新查询下当然可以,但是不优化啊,因为数据都已经查过了,只是额外附加一条到这个orderDetail里而已
// 有什么方式可以做到嘛
dd($order->orderDetail);
忽然笑
浏览 636回答 1
1回答

明月笑刀无情

解决了,直接$order->orderDetail->push()即可。。
打开App,查看更多内容
随时随地看视频慕课网APP