ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp3.2でデータを変更する方法の分析例

thinkphp3.2でデータを変更する方法の分析例

PHPz
PHPzオリジナル
2023-04-07 09:25:47555ブラウズ

thinkphp3.2 では、データの変更は一般的な操作です。この記事ではthinkphp3.2でデータを変更する方法を紹介します。

まず、サンプル データ テーブルを準備する必要があります。次の構造を持つ book という名前のデータ テーブルがあるとします。

id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) COLLATE utf8_unicode_ci NOT NULL,
author varchar(255) COLLATE utf8_unicode_ci NOT NULL,
price decimal(10,2) NOT NULL,
PRIMARY KEY (id)

このデータ テーブルには、本の名前、著者、価格を保存できます。

次に、Book モデルを作成する必要があります。 App\Model ディレクトリに新しいモデルを作成します。

namespace App\Model;

use think\Model;

class Book extends Model
{

}

モデル クラスでは、使用するデータ テーブルを指定する必要があります。簡単にするために、モデル クラスで protected $table 属性を定義できます。

namespace App\Model;

use think\Model;

class Book extends Model
{
    protected $table = 'book';
}

このようにして、Book モデルを モデルと比較できます。 book データ テーブルは対話型です。

次に、データを変更するコードを記述する必要があります。ある本の価格を変更したいとします。これは、次のコードで実現できます。

use App\Model\Book;

$book = Book::get(1); // 获取主键为1的书籍对象
$book->price = 29.99; // 修改价格
$book->save(); // 保存修改

上記のコードでは、まず Book::get(1) メソッドを使用して、主キー 1 を持つ書籍オブジェクトを取得します。次に、価格を変更し、$book->save()メソッドを渡して変更を保存します。

主キーを介してオブジェクトを取得することに加えて、where メソッドを使用してオブジェクトをフィルタリングすることもできます。たとえば、著者が「Zhang San」であるすべての本の価格を変更したい場合は、次のコードを使用できます。

use App\Model\Book;

$books = Book::where('author', '=', '张三')->select(); // 获取所有作者为“张三”的书籍对象
foreach ($books as $book) {
    $book->price *= 0.8; // 将价格打八折
    $book->save(); // 保存修改
}

上記のコードでは、Book::where( 'author', ' =', 'Zhang San')->select()メソッドは、著者が「Zhang San」であるすべての書籍オブジェクトを取得し、foreach ループを通じてこれらのオブジェクトを走査します。 、価格を 20% 割引し、変更を保存します。

上記のメソッドに加えて、update メソッドを使用してデータを一度に変更することもできます。たとえば、「李思」が書いたすべての本の価格を 35 元に変更したい場合は、次のコードを使用できます。

use App\Model\Book;

$result = Book::where('author', '=', '李四')->update(['price' => 35.00]); // 修改价格
if ($result !== false) {
    echo '修改成功!'; // 输出结果
}

上記のコードでは、Book:: where('author ', '=', '李思')->update(['price' => 35.00])このメソッドは、「李思」が書いたすべての本の価格を 35 元に変更します$result !== false を使用して、変更が成功したかどうかを判断します。

上記は、thinkphp3.2 でデータを変更する方法です。読者の参考になれば幸いです。

以上がthinkphp3.2でデータを変更する方法の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。