使用場景:使用模型建立一條資料,且
id
使用uuid
自動接管;
必備知識:沒學過 PHP,沒啥必備的;
這裡不說建表、建立模型了,直奔主題!
模型(Tabs)
use Ramsey\Uuid\Uuid;
use Illuminate\Support\Str;
class Tabs extends Model
{
/**
* 關閉主鍵的自動增長(id)
* @var string
*/
public $incrementing = false;
/**
* 配置允許操作的欄位(自動接管id,這裡無需配置)
* @var array
*/
protected $fillable = ['title'];
/**
* 模型的 "booted" 方法(使用模型create時自動接管id)
* @return void
*/
protected static function booted()
{
static::creating(function ($tabs) {
if (! $tabs->getKey()) {
$tabs->{$tabs->getKeyName()} = (string) Uuid::uuid4()->getHex(); //方式1:uuid外掛庫
//$tabs->{$tabs->getKeyName()} = (string) Str::uuid();; //方式2:Str自帶方法
}
});
}
}
控制器(TabsController)
class TabsController extends Controller
{
/**
* Store a newly created resource in storage.
* 演示程式碼
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$data = $request->only([ 'title']);
$res = Tabs::create($data);
return response($res);
}
}
響應(方式1)
{
"title": "測試標籤1",
"id": "q8fdf2d0c38d8sfdbjfc2s743dfba2af"
}
安裝外掛
composer require ramsey/uuid
就這樣,打完收工!如有補充,請在下方評論區討論。
本作品採用《CC 協議》,轉載必須註明作者和本文連結