Merhaba, mutator'u get ile tanımlayamazsın. set ile tanımlamalısın. Mutator veritabanına yazmak için, Accessor ise veritabanından almak için tanımlanıyor. Yani sen Model'de şöyle yapmalısın;
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* Kullanıcının is_canceled'a değer atanmaya çalışıldığında.
*
* @param string $value
* @return void
*/
public function setIsCanceledAttribute($value)
{
// Eğer $value'nun değeri 'yes', 'evet', 'on', ... değerlerinden biri ise $value değeri atanır; değilse false atanır.
$options = ['yes', 'no', 'on', 'off', 'true', 'false', true, false, '1', '0', 1, 0, 'evet', 'hayır', 'açık', 'kapalı', 'dogru', 'yanlış'];
$this->attributes['is_canceled'] = in_array($value, $options) ? $value : false; // sadece çeşitlilik açısından bu kadar çok seçenek var. siz yine de seçenek sayısını böyle abartmayın [img]/assets/images/smileys/big_smile.png[/img]
}
/**
* Kullanıcının is_canceled değerini al.
*
* @param string $value
* @return string
*/
public function getIsCanceledAttribute($value)
{
$trueOptions = ['yes', 'on', 'true', true, '1', 1, 'evet', 'açık', 'dogru'];
// $falseOptions = ['no', 'off', 'false', false, '0', 0, 'hayır', 'kapalı', 'yanlış']; // sadece true değerinde mi diye kontrol etmek yeterli
// $value
return in_array($value, $trueOptions) ? $value : false ;
}
}
Daha fazlası için:
https://laravel.com/docs/5.4/eloquent-mutators#accessors-and-mutators