Heim > PHP-Framework > Denken Sie an PHP > Modelloperationen in thinkphp

Modelloperationen in thinkphp

Freigeben: 2020-05-09 09:12:04
nach vorne
2746 Leute haben es durchsucht

Modelloperationen in thinkphp

Neues Modell erstellen

Es gibt zwei Methoden:

Eine besteht darin, manuell zu erstellen

1. Erstellen Sie einen neuen Modellordner

2. Erstellen Sie eine neue Datei user.php. Am besten entspricht der Name dem Tabellennamen

3. Code schreiben

<?php
namespace app\index\model;
use think\Model;
class User extends Model
{
//如果表名和文件名不是对应的,用下面代码修改
protected $table = &#39;think_user&#39;;
    }
Nach dem Login kopieren

Der zweite besteht darin, den Befehl zu verwenden:

>php think make:model index/Blog
Nach dem Login kopieren

Modell Instanziierung

Es gibt drei Möglichkeiten:

1. Verwenden Sie die statische Methode

rrree

2. Verwenden Sie die Ladeklasse

rrree

use app\index\model\User;
 $li= User::get(1);
Nach dem Login kopieren

Datenbankabfragevorgang

get bedeutet, die Daten mit dem Primärschlüssel 1 abzufragen. Im Folgenden werden die Daten von name=thinkphp abgefragt

use think\Loader;
$user= Loader::model(&#39;user&#39;);
 $li= $user::get(1);
Nach dem Login kopieren

Sie können auch die Systemabfragemethode

$user= model(&#39;User&#39;);
 $li= $user::get(1);
Nach dem Login kopieren

um mehrere Daten abzufragen

Verwenden Sie die all()-Methode

//取出主键为1的数据
$user = User::get(1);
// 使用数组查询
$user = User::get([&#39;name&#39; => &#39;thinkphp&#39;]);
Nach dem Login kopieren

Oder verwenden Sie die Abfragemethode zum Anzeigen

$user = new User();
$user->where(&#39;name&#39;, &#39;thinkphp&#39;)->find();
Nach dem Login kopieren

Fragen Sie einen Feldwert ab

// 根据主键获取多个数据
$list = User::all(&#39;1,2,3&#39;);
// 或者使用数组
$list = User::all([1,2,3]);
foreach($list as $key=>$user){
    echo $user->name;
}
// 使用数组查询
$list = User::all([&#39;status&#39;=>1]);
// 使用闭包查询
$list = User::all(function($query){
    $query->where(&#39;status&#39;, 1)->limit(3)->order(&#39;id&#39;, &#39;asc&#39;);
});
foreach($list as $key=>$user){
    echo $user->name;
}
Nach dem Login kopieren

Sie können auch eine dynamische Abfrage verwenden

$user = new User();
// 查询数据集
$user->where(&#39;name&#39;, &#39;thinkphp&#39;)
    ->limit(10)
    ->order(&#39;id&#39;, &#39;desc&#39;)
    ->select();
Nach dem Login kopieren

Neue Daten

Verwenden Sie die Speichermethode

// 获取某个用户的积分
User::where(&#39;id&#39;,10)->value(&#39;score&#39;);
// 获取某个列的所有值
User::where(&#39;status&#39;,1)->column(&#39;name&#39;);
// 以id为索引
User::where(&#39;status&#39;,1)->column(&#39;name&#39;,&#39;id&#39;);
User::where(&#39;status&#39;,1)->column(&#39;id,name&#39;);
Nach dem Login kopieren

Verwenden Sie die Datenstapelmethode zum Speichern

// 根据name字段查询用户
$user = User::getByName(&#39;thinkphp&#39;);
// 根据email字段查询用户
$user = User::getByEmail(&#39;thinkphp@qq.com&#39;);
Nach dem Login kopieren

Die am häufigsten verwendete Methode ist das Importieren von Beiträgen oder holen Sie sich Daten während der Instanziierung und speichern Sie sie dann >Sie können auch die Hilfsfunktion verwenden

$user           = new User;
$user->name     = &#39;thinkphp&#39;;
$user->email    = &#39;thinkphp@qq.com&#39;;
$user->save();
Nach dem Login kopieren

Datenlöschung, müssen Sie zuerst abfragen und dann löschen

Einen löschen

$user = new User;
$user->data([
    &#39;name&#39;  =>  &#39;thinkphp&#39;,
    &#39;email&#39; =>  &#39;thinkphp@qq.com&#39;
]);
$user->save();
Nach dem Login kopieren

Mehrere löschen

//如果需要过滤非数据表字段的数据,可以使用:
$user = new User($_POST);
// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save();

//如果你通过外部提交赋值给模型,并且希望指定某些字段写入,可以使用:
$user = new User($_POST);
// post数组中只有name和email字段会写入
$user->allowField([&#39;name&#39;,&#39;email&#39;])->save();
Nach dem Login kopieren
Löschen gemäß Bedingungen

$user           = new User;
$user->name     = &#39;thinkphp&#39;;
$user->email    = &#39;thinkphp@qq.com&#39;;
$user->save();
// 获取自增ID
echo $user->user_id;
Nach dem Login kopieren

Datenaktualisierung, muss zuerst abgefragt und dann aktualisiert werden

$user = new User;
$list = [
    [&#39;name&#39;=>&#39;thinkphp&#39;,&#39;email&#39;=>&#39;thinkphp@qq.com&#39;],
    [&#39;name&#39;=>&#39;onethink&#39;,&#39;email&#39;=>&#39;onethink@qq.com&#39;]
];
$user->saveAll($list);
Nach dem Login kopieren

Aktualisierung gemäß Bedingungen

// 使用model助手函数实例化User模型
$user = model(&#39;User&#39;);
// 模型对象赋值
$user->data([
    &#39;name&#39;  =>  &#39;thinkphp&#39;,
    &#39;email&#39; =>  &#39;thinkphp@qq.com&#39;
]);
$user->save();

或者进行批量新增:
$user = model(&#39;User&#39;);
// 批量新增
$list = [
    [&#39;name&#39;=>&#39;thinkphp&#39;,&#39;email&#39;=>&#39;thinkphp@qq.com&#39;],
    [&#39;name&#39;=>&#39;onethink&#39;,&#39;email&#39;=>&#39;onethink@qq.com&#39;]
];
$user->saveAll($list);
Nach dem Login kopieren

Post-Einreichung direkt aktualisieren

$user = User::get(1);
$user->delete();
Nach dem Login kopieren
Aktualisierung erzwingen, um das Hinzufügen von

User::destroy(1);
// 支持批量删除多个数据
User::destroy(&#39;1,2,3&#39;);
// 或者
User::destroy([1,2,3]);
Nach dem Login kopieren

zu verhindern.

// 删除状态为0的数据
User::destroy([&#39;status&#39; => 0]);

还支持使用闭包删除,例如:
User::destroy(function($query){
    $query->where(&#39;id&#39;,&#39;>&#39;,10);
});

或者通过数据库类的查询条件删除
User::where(&#39;id&#39;,&#39;>&#39;,10)->delete();
Nach dem Login kopieren

mithilfe der Datenbankklasse hinzufügen Empfohlenes Tutorial: „

TP5

Das obige ist der detaillierte Inhalt vonModelloperationen in thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage