Eloquent 為了避免特定欄位(像是 id, created_at …)被使用者故意傳入大量(Mass)資料去進行修改,所以 Eloquent 會自動保護欄位不被大量異動(Mass Assignment),像是:
// 新增
App\User::Create([
'first_name'=> 'KeJyun',
'last_name' => 'Hong',
'email' => 'kejyun@gmail.com',
]);
// 更新
$user = App\User::find('1');
$user->update([
'email' => 'hello@gmail.com',
]);
如果我們需要異動這些欄位,需要在 Model 裡面設定 $fillable
的欄位,這樣就可以使用大量資料的方式,去新增或異動資料表欄位資料。
class User extends Model {
protected $fillable = ['first_name', 'last_name', 'email'];
}
我們也可以使用 $guarded
指定某些欄位需要被保護,能被大量新增或異動
class User extends Model {
protected $guarded = ['id', 'password'];
}
我們也可以設定所有欄位都不能被大量新增或異動
class User extends Model {
protected $guarded = ['*'];
}
我們可以很簡單的使用 Carbon 去做時間的資料處理,預設的 created_at
與 updated_at
是使用 Carbon 當作儲存的資料格式
$article = \App\Article::find(1);
// created_at = '2014-03-18 23:59:59'
// 取得 created_at 年份
// 2014
dd($article->created_at->year);
// 取得 created_at 月份
// 03
dd($article->created_at->month);
// 取得 created_at 6 天後的時間
// 2014-03-24 23:59:59
dd($article->created_at->addDays(6));
// 取得 created_at 格式化為 Y-m 的時間
// 2014-03
dd($article->created_at->format('Y-m'));
// 取得 created_at 格式化為人可閱讀的時間
// 1 year ago
dd($article->created_at->diffForHumans());
若我們自己新增了時間的欄位像是 published_at
,則 Model 沒有自動將此欄位的資料設為 Carbon 的資料格式
我們可以在 Model 中設定 $dates
欄位中的資料,可以指定欄位資料格式為 Carbon 的資料格式
class Article extends Model {
protected $dates = ['published_at'];
}
我們也可以使用 $connection
指定模型需要用哪個資料庫連線去做查詢
class User extends Model {
protected $connection = 'custom_connection_name';
}
使用 Eloquent 去建立模型(Model)時,預設主鍵會使用自動新增(Auto-increment)的方式去新增,若要自行定義主鍵時,則要設定 $incrementing
為 false
,將自動新增的功能關閉~
class User extends Model {
public $incrementing = false;
}
使用 Eloquent 去建立模型(Model)時,預設會將主鍵欄位名稱設為 id
,若有需要異動主鍵欄位名稱的話,則要設定 $primaryKey
變數,設為自行定義的欄位名稱
class User extends Model {
protected $primaryKey = 'my_primary_column_name';
}
KeJyun 最新新書推薦
- Laravel 5 for beginner 新手道場:優雅運用框架快速開發 PHP 網站
- Laravel框架开发详解:从零基础到运用框架快速开发PHP网站
Laravel 是 PHP 的框架(Framework),提供了很多開發網站或 API 所需的工具及環境,經過簡單的設定就可以完成資料的處理及顯示,使開發者可以很優雅且快速的開發出各個不同的產品。本書適合有 PHP 基礎的人,但不知道要怎麼選擇框架,或者不用框架的人也能夠明白它的好處。 雖然 WordPress 也能夠架站,但如果有客製化需求,要開發各式各樣的網站,或提供 App 使用的 API,如此一來你只能選擇用框架,而 Laravel 是目前最受歡迎的。 本書將解說為什麼要使用框架,以及理解框架的優缺點後,要怎麼選擇框架,並用框架快速建構一個網站。除非必要,否則書中會避免專業技術用語,盡量使用最生活化易懂的例子及語氣,讓大家更容易進入 Laravel 的世界。 |
|
購書連結 |
|
購書連結 |