barisozdemirr Veritabanına array olarak kaydedebilmeniz için o alanın jsonb olması gerekiyor. Bu şekilde ayrıca json yöntemlerini de kullanabilirsiniz:
https://laravel.com/docs/8.x/queries#json-where-clauses
Tabloda "['laravel', 'turkiye', 'forum']"
şeklinde tırnak içinde görüyorsanız o array değil karakter ifadedir, yani string. Tabloda ["laravel", "turkiye", "forum"]
şeklinde görmeniz lazım.
Alan adı categories ise migrasyon dosyasında $table->jsonb('categories');
gibi eklemeniz lazım. Daha sonra bunu modelde $casts[] içinde array olarak belirtmeniz lazım. Mesela bu categories alanı User modelinde ise:
app/Models/User.php:
protected $casts = [
'categories' => 'array',
];
Artık kaydederken direkt array verebilirsiniz. Çekerken de $user->categories
yaptığınızda otomatik olarak array olarak gelir. Veritabanına yazma ve okuma kısmındaki çevrim işlemini Eloquent hallediyor:
https://laravel.com/docs/8.x/eloquent-mutators#array-and-json-casting
Blade'e basarken ya karakter ifadeye çevirirsiniz ya da iterasyon kullanırsınız. Örneğin virgülle ayrılmış şekilde istiyorsanız {{ implode(',' , $user->categories) }}
gibi.
iterasyon
@foreach($user->categories as $category)
...
@endforeach
index ile erişim
{{ $user->categories[0] ?? null }}