Hâlâ `json_decode` kullanıyor musun?
Projenizde, veritabanından bir sütunu okuyup `json_decode` yaparak dizi üzerinde işlem yapıyorsanız ve sonrasında tekrar `json_encode` ile kaydediyorsanız, muhtemelen sık sık `true` parametresini unutmaktan korkuyorsunuz.
Daha kötüsü, virgülle ayrılmış bir listeyi depolayıp sürekli olarak `explode` ve `implode` yapmak zorunda kalmak. Bu işlemler, Laravel’in `Eloquent` ile halledilebilecek sorunlar.
Çoğu geliştirici, `casts` fonksiyonunu sadece dört tiple (örneğin, `array`, `boolean`, `datetime`, `integer`) tanıyıp bırakıyor, ancak aslında çok daha fazlası var.
<h2>
<a name="cast_nedir" href="#cast_nedir"></a>
`Cast` nedir?
</h2>
<p>`Cast`, veritabanındaki format ile PHP'de kullanmak istediğiniz format arasında otomatik bir dönüşüm sağlar. Modelinizde tanımı yaparak `Eloquent`, iki yönde köprü kurar:</p>
<div class="highlight js-code-highlight">
<pre class="highlight php"><code>class Produto extends Model
{
protected function casts(): array
{
return [
‘ativo’ => ‘boolean’,
‘preco’ => ‘decimal:2’,
‘publicado_em’ => ‘datetime’,
];
}
}
<p>Şimdi ise burada pek bilinmeyen `casts`'leri keşfedeceğiz.</p>
<h2>
<a name="AsArrayObject" href="#AsArrayObject"></a>
`AsArrayObject`: Gerçek, değiştirebilir bir dizi
</h2>
<p>Klasik `array` cast'inin bir problemi var: Bir öğeyi doğrudan değiştiremiyorsunuz. Aşağıdaki kod <strong>çalışmaz</strong>:</p>
<div class="highlight js-code-highlight">
<pre class="highlight php"><code>$produto->options[‘cor’] = ‘azul’; // sessizce yok sayılır 😑


