>백엔드 개발 >PHP 튜토리얼 >Eloquent를 CakePHP와 함께 사용하는 방법은 무엇입니까?

Eloquent를 CakePHP와 함께 사용하는 방법은 무엇입니까?

PHPz
PHPz원래의
2023-06-04 09:10:511369검색

CakePHP는 널리 사용되는 PHP 프레임워크인 반면, Eloquent는 Laravel 프레임워크에서 사용되는 ORM(Object Relational Mapping) 도구입니다. CakePHP에는 자체 ORM 도구가 함께 제공되지만 일부 개발자는 Eloquent의 구문과 경험을 선호할 수 있습니다. Eloquent를 CakePHP와 함께 사용해보고 싶다면 이 문서에서 몇 가지 지침을 제공할 것입니다.

  1. Install Eloquent

먼저 Eloquent를 설치하려면 Composer를 사용해야 합니다. 명령줄에서 다음 명령을 실행하세요:

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();

이 코드 조각은 Eloquent를 초기화하고 데이터베이스에 연결합니다. 실제 데이터베이스에 연결하려면 연결 세부 정보를 바꿔야 합니다.

  1. 모델 만들기

Eloquent에서는 각 테이블을 해당 모델에 매핑할 수 있습니다. 우리가 작업하려는 각 CakePHP 테이블을 나타내는 모델을 만들어야 합니다. 예를 들어 users라는 테이블이 있는 경우 User 모델을 생성해야 합니다. app/Model/ 경로 아래에 Users.php라는 파일을 생성하고 다음 코드를 작성할 수 있습니다: users的表,那么你需要创建一个User模型。你可以在路径app/Model/下创建一个名为Users.php的文件,并编写以下代码:

use IlluminateDatabaseEloquentModel as Eloquent;

class User extends Eloquent {
    protected $table = 'users';
}

在这个模型类中,我们告诉Eloquent这个模型对应的是users表。你也可以在User

// 创建一条新记录
$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();

이 모델 클래스에서 우리는 이 모델이 users 테이블. <code>User 모델에서 모델과 관련된 다른 메서드와 속성을 정의할 수도 있습니다.
  1. CRUD 작업 수행

모델이 있으면 이를 사용하여 데이터베이스 작업을 수행할 수 있습니다. 다음은 Eloquent를 사용하여 일반적인 CRUD 작업을 수행하는 몇 가지 방법의 예입니다:

$users = User::where('name', 'John')->get();

이러한 작업의 구문은 Laravel에서 Eloquent를 사용하는 것과 동일합니다. 모델에 다른 방법을 추가하여 더 복잡한 작업을 수행할 수 있습니다. Eloquent는 쿼리 빌더, 관계, 이벤트 등과 같은 다른 일반적인 작업도 지원합니다.
  1. 쿼리 작업 단순화

Eloquent의 쿼리 빌더를 사용하여 쿼리를 단순화할 수 있습니다. Eloquent의 쿼리 빌더를 사용하면 연결된 메소드를 사용하여 쿼리를 작성할 수 있습니다. 예를 들어, 다음 코드를 사용하여 John이라는 이름의 모든 사용자를 가져올 수 있습니다.

$users = User::where('active', 1)
    ->orderBy('name', 'desc')
    ->take(10)
    ->get();

체인 메서드를 사용하여 쿼리를 추가로 집계할 수 있습니다.

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

// 在CakePHP视图中
<?php foreach ($users as $user): ?>
    <div><?= $user->name ?></div>
<?php endforeach ?>

그러면 상위 10명의 활성화된 사용자가 이름을 기준으로 역순으로 정렬되어 반환됩니다.
  1. 외부 통합

CakePHP에서 다른 라이브러리나 기능을 사용하는 경우 CakePHP와 Eloquent 간의 상호 작용이 필요할 수 있습니다. 다행히도 이것은 쉽습니다. Eloquent의 쿼리 실행은 표준 PHP 배열 또는 객체를 반환합니다. 이러한 결과를 뷰 템플릿이나 기타 컨트롤러 메서드와 같은 다른 CakePHP 라이브러리나 함수에 전달할 수 있습니다.

Eloquent의 쿼리 결과를 CakePHP 뷰에 전달하려면 다음 코드를 사용하면 됩니다.

rrreee

여기에서는 Eloquent를 사용하여 모든 사용자를 가져와서 CakePHP 뷰 템플릿에 전달합니다. 쿼리 결과를 다른 라이브러리나 함수에 전달하고 CakePHP의 다른 함수를 사용하여 처리할 수 있습니다.

Summary

Eloquent는 Laravel 프레임워크에서 일반적으로 사용되는 인기 있는 PHP ORM 도구입니다. 그러나 Eloquent 사용의 구문과 경험을 선호한다면 이를 CakePHP와 통합할 수도 있습니다. 위 단계를 사용하면 CakePHP에서 Eloquent를 쉽게 사용할 수 있습니다. 최상의 결과를 얻으려면 Eloquent를 CakePHP의 다른 라이브러리 및 기능과 통합해야 한다는 점을 기억하세요. 🎜

위 내용은 Eloquent를 CakePHP와 함께 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.