I've a fetch a Laravel Eloquent collection by:
$product = Product::query()->with(['merchant', 'picture'])->where('id', $id)->first();
and get the dump of $product
is
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: ...
}
I need to unset the relation object merchant
and picture
from this collection.
I've tried following options but failed:
unset($product['merchant']);
unset($product->merchant);
Any help will be appreciate.
Thanks in advance
In Laravel 5.6.25, you can use unsetRelation()
:
$product->unsetRelation('merchant')->unsetRelation('picture');
Before that:
$relations = $product->getRelations();
unset($relations['merchant'], $relations['picture']);
$product->setRelations($relations);
I have to tables with the same fields.. So I need to check the different column based on value. So if the value of foreign key is same then need to unset that relation
If you have merchant
property in the model (merchant
column in the table) you can get it value using $product->getOriginal('merchant')
or $product->getAttribute('merchant')
you can unset it
unset($product->merchant);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With