2016-08-14 3 views
0

Работа над новым проектом, который включает в себя преобразование видеофайлов из MPEG в WEBM. Моя проблема заключается в том, что в процессе преобразования я пытаюсь обновить свои свойства модели Video, но по какой-то причине я не могу изменить некоторые свойства.Laravel 5.2 Свойства модели не меняются

Например, я могу модифицировать name модели видео, но я не могу Изменять streampath или converted полей

class Video extends Model 
{ 
// 
public $streampath; 
public $converted; 


protected $fillable = ['streampath', 'converted']; 

/** 
* Video constructor. 
* @param array $path 
*/ 
public function __construct($path=null) 
{ 
    parent::__construct(); 
    if($path) { 
     $this->path = $path; 
    } 

} 
.... 

Вот метод преобразования:

public function convert() { 
     $uniqueId = $this->id; 
     $tempPath = $this->path; 
     $outputFileName = Carbon::now()->format('Ymdhis') . '.webm'; 
     $outputPath = 'videos/' . $outputFileName; 
     $this->setConverted(ConvertStatusEnum::CONVERTING); 
//  Run the converter 
     $this->name = 'MY NEW TEST'; 
     $this->setStreampath($outputFileName); 
     $this->setConverted(ConvertStatusEnum::CONVERTED); 
     Log::debug($this); 
     return $this; 
    } 

И вот сетки для этих 2 свойств:

public function setStreampath($streampath) 
{ 
    $this->streampath = $streampath; 
} 
public function setConverted($converted) 
{ 
    $this->converted = $converted; 
} 

Любая помощь будет очень признана

+0

Вы возвращение '$ this' в конце вашего' обращенного() 'метод, но вы на самом деле' сохранить() ' 'ИНГ модель? Кроме того, у вас есть два общедоступных свойства с именем '$ streampath' и' $ convert', почему они существуют? Если вы сохраните модель, эти изменения не будут отображаться в базе данных, так как их фактические свойства в самом классе. Массив '$ fillable' определяет только, может ли быть заполнен атрибут ** **, а не публичное свойство. Я бы настоятельно рекомендовал читать на моделях: https://laravel.com/docs/5.2/eloquent –

+0

Я нахожусь в контроллере, но проблема не в том, что обновляемая база данных - когда я регистрирую модель, те поля не установлены –

+0

@SteveBauman Удаление этих публичных свойств, похоже, сделало трюк - не помните, почему они были добавлены, должно быть, были ошибки. –

ответ

0

Попробуйте это. Изменение
$this->property
Для
$this->attributes['property']

+0

Нет. Комментарий по моему вопросу исправил это –

Смежные вопросы