ORM(Object Relational Mapping)可以處理大多數的SQL需求,來好好研究一番CRUD(SELECT、CREATE、 UPDATE、DELETE)該怎麼使用,但在開始之前還是要先熟悉ORM的規則。
備註:不同的ORM規則不同,以下是以laravel的ORM來做說明唷!!!!
開始玩之前,我們需要使用artisan建立一個modelphp artisan make:model Post
說明一下Eloquent ORM的規則,ORM會讓資料表與Medel相對應,所以可以透過Model與資料表做異動
protected $table="bigposts";
備註:上面的這部分是我自己嘗試的結果,有些是說會有models資料夾~
大致語法
取得所有資料
$posts = Post::all();
foreach ($posts as $post) {
dump($post->title);
}
Chunk
Post::chunk(10, function ($posts) {
foreach ($posts as $post) {
if ($post->views == 0) {
continue;
} else {
dump($post->title . ':' . $post->views);
}
}
});
Cursor
foreach (Post::cursor() as $post) {
dump($post->title . ':' . $post->content);
}
給點條件式$posts = Post::where('views', '>', 0)->select('id', 'title', 'content')->get();
獲取一個$user = User::where('name', 'jack')->first();
如果條件是主key也可以這樣玩$user = User::find(1);
計數$num = User::whereNotNull('email_verified_at')->count();
求和$sum = User::whereNotNull('email_verified_at')->sum('id');
平均值$avg = User::whereNotNull('email_verified_at')->avg('id');
最小值$min = User::whereNotNull('email_verified_at')->min('id');
最大值$max = User::whereNotNull('email_verified_at')->max('id');
從以上這些可以看到ORM跟原生SQL的差距,感覺是不是不用背一堆語法阿~但但但…請注意!!!這都是簡單的語法,如果是比較複雜的語法,我猜可能就比寫原生SQL還頭痛了吧!!!即便如此ORM的大多情況下,確實也是帶來了許多好處,所以接下來還需要繼續GO GO ORM!GO GO ORM!