Dalam proses menggunakan Laravel, anda sering menghadapi situasi di mana medan perlu ditukar. Dalam artikel ini, kami akan menyelami lebih mendalam tentang asas penukaran medan dalam Laravel, termasuk cara menyesuaikan jenis penukaran medan.
Penukaran medan dalam Laravel digunakan untuk menukar atribut model daripada satu format kepada format lain untuk memenuhi keperluan perniagaan yang berbeza, seperti menukar format cap masa yang disimpan dalam pangkalan data kepada format masa yang boleh dibaca manusia .
Laravel menyediakan pelbagai jenis penukaran medan, termasuk tarikh, masa, JSON, tatasusunan dan jenis lain Dengan mentakrifkannya dalam model, kami boleh menukar atribut model dengan mudah. Mari kita lihat bagaimana jenis penukaran medan ditakrifkan dalam Laravel:
namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $casts = [ 'published_at' => 'datetime', 'meta' => 'array', ]; }
Dalam contoh di atas, kami menukar published_at
kepada datetime
jenis dan meta
kepada array
taip . Dengan cara ini, apabila kita mendapat model Post
daripada pangkalan data, published_at
akan ditukar secara automatik kepada contoh Carbon
dan meta
akan ditukar secara automatik kepada tatasusunan PHP.
Selain jenis penukaran medan terbina dalam Laravel, kami juga boleh menyesuaikan jenis penukaran medan untuk memenuhi keperluan perniagaan tertentu. Mari kita lihat contoh jenis penukaran medan tersuai:
namespace App\Models; use Carbon\Carbon; use Illuminate\Contracts\Database\Eloquent\CastsAttributes; class Price implements CastsAttributes { public function get($model, $key, $value, $attributes) { return $value / 100; } public function set($model, $key, $value, $attributes) { return $value * 100; } }
Dalam contoh di atas, kami telah menentukan jenis penukaran medan tersuai bernama Price
untuk menukar sifat model daripada Menukar format integer dalam sen kepada format titik terapung dalam yuan. Antaranya, kaedah get
digunakan untuk menukar atribut apabila membacanya daripada pangkalan data, dan kaedah set
digunakan untuk menukar atribut apabila menulisnya ke pangkalan data.
Untuk menggunakan jenis penukaran medan tersuai dalam model, kami hanya menentukan jenis dalam atribut $casts
:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Product extends Model { protected $casts = [ 'price' => Price::class, ]; }
Dalam contoh di atas, kami akan price
Atribut ditukar kepada jenis Price
, supaya apabila kita mendapat model Product
, price
secara automatik akan membaca format integer dalam sen daripada pangkalan data dan menukarnya kepada format titik terapung dalam yuan.
Selain menggunakan jenis penukaran medan tersuai dalam model, kami juga boleh menggunakan jenis penukaran medan dalam pembina pertanyaan untuk memenuhi keperluan pertanyaan khusus. Mari lihat cara menggunakan jenis penukaran medan untuk membuat pertanyaan:
$posts = Post::where('published_at', '>', now()->subDays(7))->get();
Dalam contoh di atas, kami membuat pertanyaan untuk artikel yang diterbitkan dalam 7 hari yang lalu. Laravel secara automatik akan menukar nilai medan published_at
kepada contoh Carbon
dan membandingkannya dengan masa semasa.
Ringkasnya, penukaran medan ialah ciri yang sangat penting dalam Laravel, yang boleh membantu kami menukar atribut model dengan mudah untuk memenuhi keperluan perniagaan yang berbeza. Melalui pengenalan artikel ini, saya percaya bahawa pembaca telah memahami pengetahuan asas penukaran medan dalam Laravel, dan saya berharap ia dapat membantu pembaca menggunakan Laravel dalam projek sebenar.
Atas ialah kandungan terperinci Mari kita bincangkan tentang pengetahuan asas penukaran medan dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!