Die folgende Tutorial-Kolumne von thinkphp stellt Ihnen die Modifikatoren und die automatische Vervollständigung im thinkPHP5-Modell vor. Ich hoffe, dass sie Freunden, die sie benötigen, hilfreich sein wird!
1. Modifikator
Während des eigentlichen Entwicklungsprozesses müssen einige Felder geändert werden, wenn sie in der Tabelle gespeichert werden. Beispielsweise muss das vom Benutzer bei der Registrierung eingegebene Passwort verschlüsselt werden, wenn es in der Tabelle gespeichert wird. also wird der Modifikator generiert.器 Der Modifikator ähnelt dem Erfassungsgerät. Er muss in das Modell geschrieben werden. Die Benennungsregeln sind SET + Feldname (gemäß der Buckelmethode) + ATTR.
Beispiel: Beim Hinzufügen eines Benutzers muss das Passwort des Benutzers verschlüsselt werden.
Erstellen Sie eine Benutzertabelle Die Datenbank verfügt über mehr Datensätze und Kennwortfelder. Der durch den Kennwortmodifikator geänderte Wert.
2. Automatische Vervollständigung Die in der tatsächlichen Entwicklung erstellten Tabellenfelder enthalten grundsätzlich Felder, die automatisch ausgefüllt werden müssen, z. B. Erstellungszeit der Aufzeichnung, Aktualisierungszeit, Ersteller-ID (Anmeldebenutzer-ID) usw. Dies ist erforderlich Verwenden Sie zu diesem Zeitpunkt die Autovervollständigungsfunktion der Tabelle. Es gibt drei Arten der automatischen Vervollständigung: automatische Vervollständigung beim Einfügen und Aktualisieren, automatische Vervollständigung beim Einfügen und automatische Vervollständigung beim Aktualisieren. Die Einstellungen werden im Modell verwendetCREATE TABLE `tp_user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) NOT NULL DEFAULT '', `password` char(32) NOT NULL DEFAULT '', `mobile` varchar(15) NOT NULL DEFAULT '' COMMENT '用户手机号', `email` varchar(100) NOT NULL DEFAULT '', `sex` tinyint(3) NOT NULL DEFAULT '0' COMMENT '性别 0未知 1男 2女', `age` tinyint(3) unsigned NOT NULL DEFAULT '0', `time` int(10) NOT NULL DEFAULT '0' COMMENT '时间', `create_time` int(10) NOT NULL DEFAULT '0' COMMENT '创建时间', `update_time` int(10) NOT NULL DEFAULT '0' COMMENT '更新时间', `status` tinyint(3) NOT NULL DEFAULT '1' COMMENT '记录状态 -1删除 0禁用 1正常', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
namespace app\index\model; use think\Model; class User extends Model{ //密码的修改器 public function setPasswordAttr($val){ //此处做一些对用户传入值的处理 return md5($val); } }
namespace app\index\controller; use think\Controller; use app\index\model\User; class Index extends Controller{ public function index(){ //模拟传入的post表单数据 $data = [ 'username' => 'Emrys', 'password' => 'emrys', 'email' => 'emrys126.com', 'mobile' => '13955555555', 'sex' => 1, 'age' => 18 ]; //添加用户数据 $res = User::create($data); dump($res); } }
Die Verwendung von Modifikatoren zur Implementierung der Funktion zur automatischen Vervollständigung erfordert das Hinzufügen von Modifikatoren für jedes Feld in jedem Modell, was zu aufgeblähtem Code führt. tp5 verfügt hierfür über eine spezielle Konfiguration. Ändern Sie das Element auto_timestamp = false in der Datenbankverbindungskonfigurationsdatei „database.php“ in „true“, um „create_time“ und „update_time“ in jeder Tabelle automatisch abzuschließen. Da die Felder „create_time“ und „update_time“ nicht unbedingt in jeder Tabelle vorhanden sind, stellt tp5 auch Methoden zur Verfügung, um sie im Modell zu konfigurieren.
//插入和更新时均自动完成的字段 protected $auto = []; //只在插入时自动完成的字段 protected $insert = []; //只在更新时自动完成的字段 protected $update = [];
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Modifikatoren und der automatischen Vervollständigung im thinkPHP5-Modell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!