CakePHP で Eloquent を使用するにはどうすればよいですか?

PHPz
リリース: 2023-06-04 09:16:01
オリジナル
1341 人が閲覧しました

CakePHP は人気のある PHP フレームワークであり、Eloquent は Laravel フレームワークで使用される ORM (オブジェクト リレーショナル マッピング) ツールです。 CakePHP には独自の ORM ツールが付属していますが、一部の開発者は Eloquent の構文とエクスペリエンスを好む場合があります。 CakePHP で Eloquent を使用してみたい場合は、この記事がいくつかのガイダンスを提供します。

  1. Eloquent のインストール

まず、Composer を使用して Eloquent をインストールする必要があります。コマンドラインで次のコマンドを実行します:

composer require illuminate/database
ログイン後にコピー

インストールが完了したら、app/Config/bootstrap.php ファイルを開き、次のコードを追加します:

require ROOT . DS . 'vendor' . DS . 'autoload.php';
use IlluminateDatabaseCapsuleManager as Capsule;

$capsule = new Capsule;

$capsule->addConnection([
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'my_database',
    'username'  => 'root',
    'password'  => 'root',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
]);

$capsule->setAsGlobal();
$capsule->bootEloquent();
ログイン後にコピー

このコード スニペットは初期化されます。雄弁でデータベースに接続します。実際のデータベースに接続するために、接続の詳細を必ず置き換えてください。

  1. モデルの作成

Eloquent では、各テーブルを対応するモデルにマッピングできます。操作したい各 CakePHP テーブルを表すモデルを作成する必要があります。たとえば、users というテーブルがある場合は、User モデルを作成する必要があります。パス app/Model/ の下に Users.php という名前のファイルを作成し、次のコードを記述します:

use IlluminateDatabaseEloquentModel as Eloquent;

class User extends Eloquent {
    protected $table = 'users';
}
ログイン後にコピー

このモデル クラスでは、このモデルが何に対応しているかを Eloquent に伝えます。 users テーブル。 User モデル内のモデルに関連する他のメソッドやプロパティを定義することもできます。

  1. CRUD 操作の実行

モデルを取得したら、それを使用してデータベース操作を実行できます。一般的な CRUD 操作に Eloquent を使用する方法の例をいくつか示します。

// 创建一条新记录
$user = new User;
$user->name = 'John';
$user->email = 'john@example.com';
$user->save();

// 通过id获取一条记录
$user = User::find(1);

// 更新一条记录
$user = User::find(1);
$user->email = 'new_email@example.com';
$user->save();

// 删除一条记录
$user = User::find(1);
$user->delete();
ログイン後にコピー

これらの操作の構文は、Laravel で Eloquent を使用する場合と同じです。モデルに他のメソッドを追加して、より複雑な操作を実行できます。 Eloquent は、クエリ ビルダー、リレーションシップ、イベントなどの他の一般的な操作もサポートしています。

  1. クエリ操作の簡素化

Eloquent のクエリ ビルダーを使用してクエリを簡素化できます。 Eloquent のクエリ ビルダーを使用すると、連鎖メソッドを使用してクエリを構築できます。たとえば、次のコードを使用して、John という名前のすべてのユーザーを取得できます。

$users = User::where('name', 'John')->get();
ログイン後にコピー

クエリは、チェーン メソッドを使用してさらに要約できます。

$users = User::where('active', 1)
    ->orderBy('name', 'desc')
    ->take(10)
    ->get();
ログイン後にコピー

これにより、最初の 10 人のアクティブ化されたユーザーが返されます。 by 名前の逆順に並べ替えます。

  1. 外部統合

CakePHP で他のライブラリや機能を使用している場合は、CakePHP と Eloquent の間で対話する必要がある場合があります。幸いなことに、これは簡単に実行できます。 Eloquent のクエリを実行すると、標準の PHP 配列またはオブジェクトが返されます。これらの結果を、ビュー テンプレートや他のコントローラー メソッドなど、他の CakePHP ライブラリや関数に渡すことができます。

Eloquent のクエリ結果を CakePHP ビューに渡したい場合は、次のコードを使用できます:

// 在CakePHP控制器中
public function index() {
    $users = User::all();
    $this->set('users', $users);
}

// 在CakePHP视图中
<?php foreach ($users as $user): ?>
    <div><?= $user->name ?></div>
<?php endforeach ?>
ログイン後にコピー

ここでは、Eloquent を使用してすべてのユーザーを取得し、それらをCakePHP ビュー テンプレート。クエリ結果を他のライブラリまたは関数に渡し、CakePHP の他の関数を使用してそれらを処理することができます。

概要

Eloquent は、Laravel フレームワークで一般的に使用される人気のある PHP ORM ツールです。ただし、Eloquent を使用する構文とエクスペリエンスを好む場合は、Eloquent を CakePHP と統合することもできます。上記の手順を使用すると、CakePHP で Eloquent を簡単に使用できます。最良の結果を得るには、Eloquent を CakePHP の他のライブラリおよび機能と統合する必要があることに注意してください。

以上がCakePHP で Eloquent を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート