我有一个获取Laravel Eloquent集合:
$product = Product::query()->with(['merchant', 'picture'])->where('id', $id)->first();
字符串
并得到$product
的转储是
Product {
#casts: ...
#dates: ...
#connection: "mysql"
#table: null
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: true
+wasRecentlyCreated: false
#attributes: array:1 [
"id" => 27
]
#original: ...
#changes: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: array:2 [
"merchant" => Merchant {...}
"picture" => Picture {...}
}
]
#touches: []
+timestamps: true
#hidden: []
#visible: []
#fillable: []
#guarded: ...
}
型
我需要从这个集合中取消设置关系对象merchant
和picture
。
我尝试了以下选项,但失败了:
unset($product['merchant']);
unset($product->merchant);
型
任何帮助将不胜感激。
Thanks in advance
4条答案
按热度按时间xlpyo6sf1#
在Laravel 5.6.25中,你可以使用
unsetRelation()
:字符串
在此之前:
型
rt4zxlrg2#
你可以取消设置
字符串
af7jpaap3#
我必须与相同的字段表。.所以我需要检查不同的列的基础上的价值.所以,如果值的外键是相同的,然后需要取消这种关系
如果模型中有
merchant
属性(表中的merchant
列),则可以使用$product->getOriginal('merchant')
或$product->getAttribute('merchant')
获取其值xj3cbfub4#
字符串
为我工作在这里是一个例子:
型