Skip to content

Instantly share code, notes, and snippets.

@leonardfactory
Last active October 8, 2016 11:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leonardfactory/d21f3787594306374ce336d9c5e9cdbb to your computer and use it in GitHub Desktop.
Save leonardfactory/d21f3787594306374ce336d9c5e9cdbb to your computer and use it in GitHub Desktop.
# Fields.yaml del tuo 'Pet'
# Utilizziamo 'petSaveData' solo per passare i dati all'evento 'beforeSave'
pet_save_data[species]:
label: Specie
type: text
# ...
<?php
class PetsPlugin {
public boot() {
User::extend(function($model) {
// Evitiamo di salvare i 'pet_save_data' nel DB
$model->purgeable[] = ['pet_save_data'];
// Quando viene salvato un User, provvediamo a salvare anche il Pet correlato
$model->bindEvent('beforeSave', function($user) {
$pet = Pet::where('user_id', $user->id)->findOne();
if (empty($pet)) {
$pet = new Pet();
$pet->user_id = $user->id;
}
$pet->species = $user->pet_save_data['species'];
/* ... */
$pet->save();
});
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment