請getFooAttribute
在模型上建立一個方法,其中Foo
包含您要訪問的列的「studly」外殼名稱。在這個例子中,咱們將爲first_name
屬性定義一個訪問器。嘗試檢索sex
屬性值時,Eloquent會自動調用訪問者:php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function getSexAttribute($sex)
{
if ($sex == 1) return '男';
if ($sex == 2) return '女';
return '未知';
}
}複製代碼
查詢出來模型之後獲取sex,將是男或者女或者未知 bash
$user = App\User::find(1);
$sex = $user->sex;
dd($sex); // 男複製代碼
請getFooAttribute
在模型上建立一個方法,其中Foo
包含您要訪問的列的「studly」外殼名稱。在這個例子中,咱們將爲first_name
屬性定義一個訪問器。嘗試檢索sex
屬性值時,Eloquent會自動調用訪問者:ui
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function setSexAttribute($sex)
{
$this->attributes['sex'] = $sex;
}
}複製代碼
查詢出來模型之後獲取sex,將是男或者女或者未知 this
$user = App\User::find(1);
$user->sex = '我是sex';
dd($user->sex); // 我是sex複製代碼
本地範圍容許您定義可在整個應用程序中輕鬆重用的常見約束集。例如,您可能須要常常檢索全部被視爲「受歡迎」的用戶。要定義範圍,請使用Eloquent模型方法做爲前綴scope
。範圍應始終返回查詢構建器實例:spa
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function scopeSex($query)
{
return $query->where('sex', 1);
}
}複製代碼
定義後,能夠在查詢模型時調用該方法。可是,scope
調用方法時不該包含前綴。您甚至能夠將調用連接到各類範圍,如:code
$users = App\User::sex()->orderBy('created_at')->get();複製代碼