I want to add an attribute on every attach/save on belongsToMany relationship. Example:
// I don't want to do add the `rand` attribute everytime...
User::find(1)->roles()->save($role, ['rand' => rand()]);
User::find(7)->roles()->save($role, ['rand' => rand()]);
User::find(42)->roles()->save($role, ['rand' => rand()]);
// ... I just want to call save...
User::find(1)->roles()->save($role);
// ... and magically, `rand` attribute is set to rand()
I wanted to overload belongsToMany function in Model, but it does not look like to be a good solution, it looks like a hack. Because doing this, I have to create a new BelongsToMany class extending the original one, call the original attach method in Model, then override the returned object, and then my code becomes spaghetti, so I threw everything.
Is there any elegant way to do this?
Side note: rand attribute is a stupid example, it's just an illustration, don't care about it.
from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/1UdXM98
via IFTTT
Aucun commentaire:
Enregistrer un commentaire