1. 程式人生 > >Laravel5.3中的原生+查詢構造器+Eloquent ORM 常用整理

Laravel5.3中的原生+查詢構造器+Eloquent ORM 常用整理

一。 db門面方法 use Illuminate\Support\Facades\DB;
查:$users = DB::select('select * from users where active = ?', [1]);
更新:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
插入:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
刪除:$deleted = DB::delete('delete from users’);
無返回值:DB::statement('drop table users’); 事務:DB::beginTransaction(); 你可以通過rollBack方法回滾事務: DB::rollBack(); 最後,你可以通過commit方法提交事務: DB::commit();
二 查詢構造器,table()  可加多個約束條件 1 查詢所有資訊 $users = DB::table('users')->get();
2 查詢name為John的第一行 $user = DB::table('users')->where('name', 'John')->first();
3 查詢name為John的列value為email的集合 $email = DB::table('users')->where('name', 'John')->value('email');
4獲取單列title的列集合  $titles = DB::table('roles')->pluck('title'); 5 聚合函式 count max min avg sum  $users = DB::table('users')->count(); $price = DB::table('orders')->max('price');
6 -》distinct()
7 where的用法 -》where(’xxx’,’符號’,’值’); 8 ->orderby(‘列名’,’desc’); 9  插入 DB::table('users')->insert([     ['email' => '[email protected]', 'votes' => 0],     ['email' => '[email protected]', 'votes' => 0] ]);
10可以反回自增id    $id = DB::table('users')->insertGetId(     ['email' => '[email protected]', 'votes' => 0] );
11 更新 DB::table('users')             ->where('id', 1)             ->update(['votes' => 1]);
12更新數字  預設為1 decrement DB::table('users')->increment('votes', 5); 13更新數字加欄位組合 DB::table('users')->increment('votes', 1, ['name' => 'John']);
14 刪除 DB::table('users')->delete(); DB::table('users')->where('votes', '>', 100)->delete();
三 Eloquent ORM  物件關係對映(Object Relational Mapper)工具 模型中:use Illuminate\Database\Eloquent\Model
 這裡在模型中還可以做如下的設定:
設定關聯模型的表 protected $table = ‘my_flights’; 設定是否表中有create_at 和update_at public $timestamps = fasle; 設定日期儲存格式 protected $dateFormat = 'U';
控制器中:書寫orm  use App\Flight   as flight;(敲黑板)
1  獲取 flight模型關聯表的所有資料 ——all方法返回所有結果 $flights = flight::all();
$flights = flight::where(‘id’,’148’)->get(); //獲取id為148 的所有列  $flights = flight::orderby(’time’,’desc’)->get();//獲取所有列,按照time欄位倒序排序 orm本質也是查詢構造器,所以可以使用查詢構造器中所有的方法  ,不一一列舉 2 沒找到就報錯:findorfail $list = article::find(148);   返回null
$list = article::findorFail(148);   返回404 
插入a $Article = new article;         $Article->title = '張帆';         $Article->save();
建立模型例項,設定對應的欄位屬性。save  插入b  怎麼突然開車了 = =。 $article = article::create(['title' => '何國龍']);
這樣是不行的,需要在model裡面宣告一下可以批量操作的欄位。fillable就像是白名單 protected $fillable = [’title’]; 並且這樣會返回插入的例項 。 對應的黑名單就是 guarded 。 可以 protected $guraded = []; 來快速設定所有欄位都可以自由插入。 插入c   $flight = App\Flight::firstOrCreate(['name' => 'Flight 10']);
如果不存在name為flight 10 的記錄則插入 。 4 更新 $article = article::find(3);         $article->title = 'xxx';         $article->save(); 建立模型例項,這裡與插入不同的是,需要先獲取想要更新的地方的模型。作為物件。然後進行更新。 article::where('title', 'xxx')             ->where('user_id', '148')             ->update(['body' => 185]);
更新title為xxx 且 user_id為148 的記錄 body更新為185  刪除a $article = article::find(7);         $article->delete();
刪除b article::destroy(5);
刪除c $deletedRows = App\Flight::where('active', 0)->delete();
總結: DB適合用於對效能要求高或者業務邏輯簡單的專案,ORM適合業務邏輯比較複雜的專案。

相關推薦

Laravel5.3原生查詢構造Eloquent ORM 常用整理

一。 db門面方法 use Illuminate\Support\Facades\DB; 查:$users = DB::select('select * from users where acti

Laravel 操作資料庫DB facade(原始查詢) 、查詢構造Eloquent ORM

一.DB facade連線資料庫操作檔案     config/database.php    .envDB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=roo

Laravel 使用 查詢構造配合原生sql語句 查詢

Laravel 原生查詢查詢構建器原生查詢分頁 首先說一下本人使用的版本: 5.5 在很多複雜查詢時, 往往需要原生語句進行查詢, 在 laravel 中, 我們可以這樣使用原生查詢  $user = DB::select('select * from users

Laravel5.1 數據庫-查詢構建

通過 三個參數 date() tar 需要 between select() art fun 今兒個咱說說查詢構建器。它比運行原生SQL要簡單些,它的操作面兒也是比較廣泛的。 1 查詢結果 先來看看它的語法: public function getSelec

laravel 數據庫操作之查詢構造

操作 大數 avg 李冰冰 數據庫操作 排序 span var table /** * 新增數據 * / $bool = DB::table(‘wt_001‘)->insert([‘username‘=>‘冰

jquery,模糊查詢選擇,帶 *= 的寫法具體什麼含義?

1、例如: $( "select[id*=ddlcpstyle1]" ) 1)*= 表示選擇 id 中包括 ddlcpstyle1 的 select <select id="AAAddlcpstyle1"></select> <select id="ddlc

Thinkphp5基礎——03 查詢構造(Db類)

Db類基本使用 我們在使用Db類時,需要引入think\Db。 使用原生SQL Db::query() 查詢操作 Db::excute() 插入、更新、刪除操作 Db::getLast

3條:用私有構造或者列舉類型別強化Singleton屬性

一、公有final域靜態成員 //Singleton with public final field public class Elvis { public static final Elvi

laravel 查詢構造 (一)

DB::table() 查詢構造器 演示 插入 insert() insert 裡面寫陣列。 返回一個布林值。 DB::table('user_ali') -> insert(['ali_us

CodeIgniter 查詢構造(query builder)

最近開發專案時需要使用子查詢,研究一番後得出結果: <?php // Sub Query $this->db->select('*'); $this->db->from('TableB'); $subQuery = $this-&g

1-10.Laravel框架利用查詢構造完成CURD(二)

DB類操作資料庫 DB門面(功能類) 按照MVC 的架構,對資料的操作應該放在 Model 中完成,但如果不使用Model,我們也可以用 laravel框架提供的 DB 類操作資料庫。而且,對於某些極其複雜的sql,用Model 已經很難完成,需要開發者自己手寫sql語句

TP5基礎——03 查詢構造

Db類基本使用 我們在使用Db類時,需要引入think\Db。 使用原生SQL Db::query() 查詢操作 Db::excute()

Java抽象類的構造的作用

因為抽象類不可例項化,那麼只能在子類例項化時呼叫該抽象類的構造器才有用 看例項程式碼: abstract class Animal { Animal(){ System.out.println("抽象類Animal無參構造器"); //此處執行前會預設執行super

laravel 查詢構造 (二)

get() //從資料表中取得所有的資料列 first() //取一條資料列 where() //寫條件 select() // 查詢部分欄位 chunk() // 分塊查詢 pluck() // 取某欄位值 lists() // 取某欄位值

ORMLite完全解析(三)官方文件第三章、自定義查詢構造 Custom Query Builder

          接著上一篇,下面是第三章的翻譯整理,理解錯誤的地方還請批評指正。  第三章、 自定義查詢構造器 3.1  查詢構造器基礎       下面是使用查詢構造器建立自定義查詢語句的基本步驟。首先,以java常量的形式為屬性設定列名,便於使用它 們進行

3條:用私有構造或者列舉型別強化Singleton屬性

術語: Singleton:指僅僅被例項化一次的類。         Singleton會使它的客戶端測試變得十分困難,因為無法給Singleton替換模擬實現,除非它實現一個充當其型別的介面。         實現Singleton有以下三種方法: 1、實現公有靜態成員

【TP5 :資料庫:查詢構造:鏈式操作】join

join INNER JOIN: 等同於 JOIN(預設的JOIN型別),如果表中有至少一個匹配,則返回行 LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行 RIGHT JOIN: 即

thinkphp5 資料庫和模型詳解 之2 查詢構造及高階技巧

1、掌握查詢構造器對於掌握資料庫和模型的查詢操作非常關鍵 2、使用查詢構造器一般都是自動例項化查詢類,Db類的任何方法都會自動呼叫connect方法返回連線物件例項,然後呼叫連線物件的查詢構造器方法會自動例項化查詢類。 3、db助手函式預設每次呼叫都會重新連線資料庫(目的是

3):用私有構造或者列舉型別強化Singleton屬性

在java 1.5版本發行前實現單例一般有兩種方法 (1)靜態成員 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() {

【TP5 :資料庫:查詢構造:鏈式操作】cache

cache cache方法用於查詢快取操作,連貫操作方法 用於select、find、value和column方法,以及其衍生方法 在快取有效期之內不會再次進行資料庫查詢操作,而是直接獲取快取中的資料 //find方法使用cache方法 Db::ta