Почему в моей модели возникает ошибка как неопределенное свойство? - PullRequest
0 голосов
/ 17 июня 2020

В моей модели первый метод работает нормально, но если второй метод написан, он выдает ошибку как неопределенное свойство для свойства is_finished

//Model
protected $fillable = ['is_finished'];
protected $appends = [ 'is_recorded' ];

public function getIsRecordedAttribute()
{
    if($this->is_finished > 1){ // it can be 2,3
        return 1;
    }
    return 0;
}

//the below getIsFinishedAttribute() method gives an error message 
//that is Undefined property: App\Models\Backend\MeetingContent::$is_finished in file
public function getIsFinishedAttribute()
{
    if($this->is_finished > 0){
        return 1;
    }
    return 0;
}

Как я могу исправить мою модель? Я не хочу показывать свойство is_finished как есть, потому что оно может быть больше 1

1 Ответ

1 голос
/ 17 июня 2020

На основе laravel документов https://laravel.com/docs/7.x/eloquent-serialization вы должны получить доступ к атрибуту другим способом

public function getIsAdminAttribute()
{
    return $this->attributes['admin'] === 'yes';
}

, поэтому для вашего примера

public function getIsRecordedAttribute()
{
    if($this->attributes['is_finished'] > 1){
        return 1;
    }
    return 0;
}


public function getIsFinishedAttribute()
{
    if($this->attributes['is_finished'] > 0){
        return 1;
    }
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...