Dans le développement de projets, différentes entreprises effectuent des opérations différentes sur les données de la base de données. Par exemple, certaines tables de données doivent supprimer physiquement les enregistrements de données, tandis que certains enregistrements des tables de données doivent être simulés (supprimés de manière logicielle). les frameworks utilisés maintenant ont implémenté ces deux opérations sur les données. Alors comment l'utiliser dans phalcon ?
Suppression physique dans phalcon $model->delete();
Utilisez $model->delete() dans phalcon ; l'exécution par défaut est la suppression physique, puis les enregistrements de données dans la base de données sont supprimés.Utilisez la suppression logicielle dans phalcon
phalcon fournit de nombreuses fonctions similaires aux hooks. Je comprends que les hooks sont similaires aux fonctions du middleware. Il existe une méthode dans phalcon pour ajouter des comportements :$this->addBehavior()
use Phalcon\Mvc\Model; use Phalcon\Mvc\Model\Behavior\SoftDelete; class Users extends Model{ const DELETED = "D"; const NOT_DELETED = "N"; public function initialize() { $this->addBehavior( new SoftDelete( [ "field" => "status", // 数据库中的字段 "value" => Users::DELETED, //修改数据库中status的值为D ] ) ); } }
<🎜. >Les deux points ci-dessus doivent être Tout le monde connaît les avantages de faire cela. Alors, il n'y a pas de problème ?
Utiliser des pistes pour séparer le code
En fonction des différentes entreprises, le traitement des données dans la base de données. est également différent, et certains modèles nécessitent une suppression logicielle, et certains modèles doivent être physiquement supprimés. Utilisez la méthode suivante pour le faire :
namespace xxxx; use Phalcon\Mvc\Model\Behavior\SoftDelete; if (!trait_exists('ModelSoftDeletes')) { trait ModelSoftDeletes{ public function delete(){ $this->addBehavior( new SoftDelete([ "field" => "is_deleted", "value" => self::DELETED ]) ); return parent::delete(); } } }
À utiliser dans le modèle qui doit utiliser la suppression logicielle :
class Userodel extend Model { use ModelSoftDeletes; ...... }
La méthode delete dans ModelSoftDeletes écrasera le modèle. La méthode delete ajoute une implémentation de suppression logicielle au modèle actuel avant d'appeler $model->delete().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!