laravel では、orm の正式名は「Object-Relational Mapping」、つまり「オブジェクトとリレーショナルのマッピング」を意味し、その機能はリレーショナル データベースとビジネス エンティティ オブジェクトの間のマッピングを作成することです。 , ビジネス オブジェクトを操作する場合、複雑な SQL ステートメントを扱う必要はなく、オブジェクトのプロパティとメソッドを操作するだけです。
このチュートリアルの動作環境: Windows 7 システム、Laravel 6 バージョン、Dell G3 コンピューター。
ORM
ORM とは何ですか。正式名はオブジェクト リレーショナル マッピングです。その機能は、リレーショナル データベースとビジネス エンティティ オブジェクトの間のマッピングを作成することです。特定のビジネス オブジェクトを操作する場合、複雑な SQL ステートメントを扱う必要はなくなり、オブジェクトのプロパティとメソッドを単純に操作するだけで済みます。
#ORM 実装方法
最も一般的な 2 つの実装方法は、ActiveRecord と DataMapper (前者は laravel で使用されます)class Test{
//动态调用的时候 没有找到此函数 则执行__call() 方法
public function __call($method, $parameters){
echo 22222222222;
return (new Rest)->$method(...$parameters);
}
//静态调用的时候 没有找到此函数 则执行__callStatic()方法
public static function __callStatic($method, $parameters){
echo 1111111111;
return (new static)->$method(...$parameters);
}
}
class Rest{
public function foo($name , $age){
echo 333;
dump($name,$age);
}
}
//先调用了__callStatic(), 在调用__call(), 然后调用 foo();
Test::foo('张三',17);
//只调用了 __call(), 然后调用 foo();
(new Test())->foo('李四',16);die;
/** * Handle dynamic method calls into the model. * * @param string $method * @param array $parameters * @return mixed */public function __call($method, $parameters) { if (in_array($method, ['increment', 'decrement'])) { return $this->$method(...$parameters); } return $this->newQuery()->$method(...$parameters); } /** * Handle dynamic static method calls into the method. * * @param string $method * @param array $parameters * @return mixed */public static function __callStatic($method, $parameters) { return (new static)->$method(...$parameters); }
new static は呼び出し元のインスタンスを返し、new self() は独自のインスタンスを返します
eloqument を使用してクエリを実行する場合
$list = Politician::where('party_id', 1)->count();
where メソッドModel にない場合は、まず callStatic() 関数を実行して App\Models\Politician インスタンスを取得し、次に call () を実行して、$this- によって返されたインスタンス内で where () count() などを探します。 >newQuery()メソッド。
newQuery () メソッドによって返されるインスタンスを詳しく見てみましょう。これら 2 つの魔法の関数を理解すると、laravel で ORM を実装する難しさを克服できます。
laravelのクエリコンストラクタ$list = DB::table('categoty')->get();
[関連する推奨事項:
laravel ビデオ チュートリアル] をご覧ください。
以上がlaravel ormとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。