fly*_*123 11 php laravel eloquent laravel-4
我在Laravel中设置了以下关系:
OrderStatus Model
- hasMany('Order')
Order Model
- 'belongsTo('OrderStatus');
Run Code Online (Sandbox Code Playgroud)
数据库设置有orders表和order_statuses表.该orders表有一个字段order_status_id.
当我保存订单时,我手动设置order_status_id通过获取相应的订单状态模型,如下所示:
$status = OrderStatus::where(['name'=>'sample_status'])->firstOrFail();
$order->order_status_id = $status->id;
$order->save();
Run Code Online (Sandbox Code Playgroud)
我想知道是否有内置函数来执行此操作而不是order_status_id手动设置.我在Laravel文档中读到了"附加相关模型"和"关联模型",但我无法弄清楚这些是否适合我的用例.我认为我遇到的问题是我正在直接使用子模型(顺序),并试图设置它的父模型.这有功能吗?
luk*_*ter 21
当然你可以这样做:
$status = OrderStatus::where(['name'=>'sample_status'])->firstOrFail();
$order = new Order;
$order->status()->associate($status);
$order->save();
Run Code Online (Sandbox Code Playgroud)
(status()是belongsTo关系.您可能需要调整该名称)
Mys*_*yos 11
保存新相关模型关系的正确方法如下:
$status = OrderStatus::where(['name'=>'sample_status'])->firstOrFail();
$order = new Order;
$status->order()->save($order);
Run Code Online (Sandbox Code Playgroud)
文档链接:http://laravel.com/docs/4.2/eloquent#inserting-related-models
| 归档时间: |
|
| 查看次数: |
26475 次 |
| 最近记录: |