Heim  >  Artikel  >  Backend-Entwicklung  >  thinkPHP5 implementiert die Methode zum Hinzufügen von Inhalten zur Datenbank

thinkPHP5 implementiert die Methode zum Hinzufügen von Inhalten zur Datenbank

不言
不言Original
2018-06-07 14:44:483031Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Hinzufügen von Inhalten zur Datenbank in thinkPHP5 vorgestellt. Er analysiert die Konfiguration, das Modell, die Controller-Nutzung und die Dateneinfügungsfunktionen der thinkPHP5-Datenbank im Detail in Form von Beispielen it

Das Beispiel in diesem Artikel beschreibt, wie thinkPHP5 das Hinzufügen von Inhalten zur Datenbank implementiert. Ich teile es Ihnen als Referenz mit. Die Details sind wie folgt:

Wenn ein neues Framework installiert wird, weiß ich normalerweise nicht, was ich tun soll. Dann erstellen Sie zunächst eine Schreibfunktion.

Treffen Sie zunächst die Vorbereitungen und stellen Sie eine Verbindung zur Datenbank her.

Die Konfigurationsdatei befindet sich in der Datenbank.php unter Anwendung

return [
  // 数据库类型
  'type'      => 'mysql',
  // 服务器地址
  'hostname'    => '127.0.0.1',
  // 数据库名
  'database'    => 'shoptest',
  // 用户名
  'username'    => 'root',
  // 密码
  'password'    => '',
  // 端口
  'hostport'    => '3306',
  // 连接dsn
  'dsn'       => '',
  // 数据库连接参数
  'params'     => [],
  // 数据库编码默认采用utf8
  'charset'     => 'utf8',
  // 数据库表前缀
  'prefix'     => '',
  // 数据库调试模式
  'debug'      => true,
  // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
  'deploy'     => 0,
  // 数据库读写是否分离 主从式有效
  'rw_separate'   => false,
  // 读写分离后 主服务器数量
  'master_num'   => 1,
  // 指定从服务器序号
  'slave_no'    => '',
  // 是否严格检查字段是否存在
  'fields_strict'  => true,
  // 数据集返回类型
  'resultset_type' => 'array',
  // 自动写入时间戳字段
  'auto_timestamp' => false,
  // 时间字段取出后的默认时间格式
  'datetime_format' => 'Y-m-d H:i:s',
  // 是否需要进行SQL性能分析
  'sql_explain'   => false,
];

Nach dem Einrichten lassen Sie es in Ruhe und erstellen Sie zuerst einen Controller

In der standardmäßig heruntergeladenen Sammlung gibt es einen Indexordner im Anwendungsordner.

ist ein Ordner zum Speichern von Controllern, Klassen und Vorlagen. Der Name kann geändert werden.

Wenn Sie 3.2 verwendet haben, ist es leicht zu verstehen, es entspricht der ursprünglichen Home-Datei.

Erstellen Sie zunächst drei Ordner in diesem Ordner

Erstellen Sie dann eine neue index.php-Datei im Controller-Ordner (tatsächlich gibt es standardmäßig eine).

Schreiben Sie Code wie diesen in der Klasse class

public function indexs()
{
    return '我打开控制器了';
}

Geben Sie den Servernamen /index/index/indexes in die URL-Leiste ein

Sie können eine Textzeile sehen.

Fügen Sie es hinzu und stellen Sie zuerst die Vorlage vor.

Fügen Sie zunächst thinkView hinzu und stellen Sie die Vorlagenbibliothek vor.

$view = new View;
return $view->fetch('模板名');

Also, wo soll ich die Vorlage hinstellen? Der Controller-Ordner verfügt über einen Ansichtsordner

Wenn Sie die Vorlagendatei direkt hineinziehen, wird ein Fehler gemeldet.

Sehen Sie sich die zweite Hälfte des Fehlerpfads an. /application/indexviewindexadda.html

application/index/view finden Sie

Dann gibt es einen anderen Ordnernamen und Dateinamen.

Dieser Ordner entspricht dem Namen des Controllers, was bedeutet, dass ein entsprechender Ordner erstellt werden muss. Ziehen Sie dann die Vorlage hinein, um sie aufzurufen. Natürlich verfügt ein vollständiges Framework nicht nur über diese Methode. Weitere Details werden später untersucht.

Zwei häufig verwendete Methoden zum Schreiben von Formulareinsendungen: input('post.xxx') bezieht sich auf das Abrufen des Beitragswerts.

//调用Db类
use think\Db;
$data = ['title' => input('post.title'), 'content' => input('post.title')];
Db::table('blogmsg')->insert($data);
//建立model的写法
$mod = new \app\index\model\Blogmsg;
$mod->title = input('post.title');
$mod->content = input('post.content');
$mod->save();
echo $mod->id;

Relativ gesehen bevorzuge ich persönlich diese Art zu schreiben. Verwenden Sie „Request“, um die Hinzufügung abzuschließen. (Es wird in Zukunft gut für die Verwendung von Laravel sein)

//引入Request。
use think\Request;
public function add(Request $req){
  //如果添加的内容需要处理,先单独取出然后赋值进去($req->post('title')可以获取其中的值)
  $a = rtrim($req->post('title'),' ');
  $req->post(['title'=>$a]);
  //准备添加
  $mod = new \app\index\model\Blogmsg;
  //allowField可以选择只添加哪些字段。
  $mod->allowField(['title','content'])->save($req->post());
  //获取返回的主键
  echo $mod->id;
}

sagte, dass beim Hinzufügen von Daten unbedingt eine automatische Überprüfung erforderlich ist.

Diesmal kann die automatische Verifizierung in eine separate Datei geschrieben werden. Erstellen Sie im Indexordner einen Validate-Ordner und eine PHP-Datei mit demselben Namen wie der Model-Ordner darin. Einfach zu bedienen.

Beispiel

namespace app\index\validate;
use think\Validate;
class Blogmsg extends Validate
{
  //写规则
  protected $rule = [
    'title' => 'require|max:25',
    'content' => 'require|max:255',
  ];
  //写报错返回信息
  protected $message = [
    'title.require' => '必须填写',
    'title.max' => '不能超过25个字符',
    'content.require' => '必须填写',
    'content.max' => '不能超过255个字符',
  ];
  protected $scene = [
    'add' => ['title','content'],
    'edit' => ['title','content'],
  ];
}

Dann wechselt zum Controller-Teil

$a = $mod->validate(true)->allowField(['title','content'])->save($req->post());
if(false === $a){
  // 验证失败 输出错误信息
  dump($mod->getError());
  die;
}

Schließlich erstellen Sie eine Formular-Token-Funktion, um wiederholte Übermittlungen und Remote-Übermittlungen zu verhindern: Fügen Sie {:token()} zum Formular in der Vorlage hinzu, nehmen Sie dann Änderungen an den Verifizierungsregeln vor und fügen Sie ein Token zu den Verifizierungsregeln hinzu. Wie folgt:

'title' => 'require|max:25|token',

An diesem Punkt endet der Artikelzusatzteil.

Das Obige ist der gesamte Inhalt dieses Artikels. Vielen Dank für das Lesen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Thinkphp3.2.3-Versionsdatenbank hinzufügen, löschen, ändern und Implementierungscode überprüfen

PHP implementiert das Senden und Empfangen einer JSON-Anfrage

Das obige ist der detaillierte Inhalt vonthinkPHP5 implementiert die Methode zum Hinzufügen von Inhalten zur Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn