Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 20.10.2014 16:49:13

Не работает метод create в ORM модели

Здравствуйте!
В одной из моделей перестал работать метод create(); В то время как сохранение данных через fill() + save() работает.
Код примерно такой:

protected $guarded = array();
public static $columns = array('status', 'title', 'description', 'image', 'link', 'start_date', 'finish_date');

//В функции создания
public static function addNew($data) {
  //здесь проверка данных, и другой небольшой код...

  $new = self::create($data);
}

Далее возникает ошибка. В ошибке написано пишется что нельзя добавить пустые данные в таблицу данные после чего идет распечатка sql запроса:

(SQL: insert into `table` (`updated_at`, `created_at`) values (?, ?)) (Bindings: array ( 0 => '2014-10-20 13:42:26', 1 => '2014-10-20 13:42:26', ))

Т.е. выходит что в sql передается только updated_at и created_at! Весьма странно, потом что если распечатать на экран массив $data перед функцией создания, то он будет содержать все нужные мне данные!
В то же время, если попробовать создать запись через метод save(), то все работает!

  $record= new self;
  $recordData = $record->fill( $data );
  $record->save();

Есть варианты из-за чего это может быть?

Не в сети

#2 21.10.2014 20:01:03

Re: Не работает метод create в ORM модели

Думаю из-за того что $guarded пустой, система думает что все поля защищены от массового заполнения
попробуй добавить хотя бы одно значение "id" или задать свойство $fillable

Не в сети

Подвал раздела