居然有人追蹤~
感謝
但是為了怕忘記按送出
會先打一個草稿
然後再持續優化喔~
Laravel 支援在模型的 $casts
屬性中指定多種資料型別進行轉換,常見支援的型別包括:
integer
、real
、float
、double
、string
、boolean
object
、array
(JSON 反序列化為陣列)、collection
(轉成 Laravel Collection 物件)date
、datetime
、immutable_date
、immutable_datetime
、timestamp
decimal:
(可指定小數位數)encrypted
及其變體(加密存取)hashed
(如密碼雜湊)AsArrayObject::class
、AsCollection::class
、AsStringable::class
這些轉換可以自動在存取模型屬性時處理類型轉換,像是從 JSON 字串到 PHP 陣列或集合物件,或是從整數轉成布林值,非常方便且安全
範例如下:
protected $casts = [
'is_admin' => 'boolean', // 整數 0/1 轉布林值
'options' => 'array', // JSON 字串轉 PHP 陣列
'published_at' => 'datetime', // 字串轉 Carbon 日期物件
'price' => 'decimal:2', // 小數點兩位
'settings' => AsArrayObject::class, // 轉成 ArrayObject 物件
];
總結來說,Laravel 的資料型別轉換涵蓋基本型別、複合型別、日期時間、加密與 Enum 等,可透過 $casts
屬性輕鬆為模型欄位指定
也太文謅謅~
先練習印出來
<?php
$people="people";
$number=50;
$boolean=false;
$float=4.6;
echo($people);
強迫變整數印出
<?php
$people="people";
$number=50;
$boolean=false;
$float=4.6;
$float=(int)$float;
echo($float);
附上是怎樣的資料類型
測試印出字串,其中6表示people有6個文字數量
字串改成數字其中2表示50有2個文字數量
布林要用int才可以印出,false印出0
布林要用int才可以印出,true印出1
<?php
$people="50";
$number=50;
$boolean=true;
$float=4.6;
$float=(int)$float;
$boolean=(int)$boolean;
var_dump($boolean);
+-*/
加入*跟/
%表示餘數
<?php
$people="50";
$number=50;
$boolean=true;
$float=4.6;
$float=(int)$float;
$boolean=(int)$boolean;
var_dump($boolean);
$num1=12;
$num2=3;
$ans=$num1+$num2;
echo($ans."\r\n");
$ans=$num1-$num2;
echo($ans."\r\n");
$ans=$num1*$num2;
echo($ans."\r\n");
$ans=$num1/$num2;
echo($ans."\r\n");
$ans=$num1%$num2;
echo($ans."\r\n");
這裡先偷跑一下看看我們的目標的樣子~
我們明天見