2013-09-11 2 views
1

Я не могу найти правильный метод обновления модели в laravel и затем сохранить ее в базе данных.Значения модели массового обновления из сообщения JSON в Laravel

Я использую Laravel 4. Я размещаю полезную информацию json от EmberJS.

Вот мой код обновления от моего RESTful контроллера:

public function update($id) 
{ 
    $data = Input::json()->all();  
    $user = Users::find($id); 
    $user->fill($data['user']); 
    $user->save();  
    return json_encode(array('user' => $user->toArray())); 
} 

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

+0

вы можете добавить пример полезной нагрузки json –

+2

Вы объявили атрибут $ fillable в модели? Он позволяет автозаполнять модель с помощью механизма массового присвоения, который вы пытаетесь использовать (отсюда fill()) – Gadoma

+0

, если нет, проверьте этот помощник [Массовое назначение Laravel 4] (http: // four. laravel.com/docs/eloquent#mass-assignment) – Gadoma

ответ

1

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

Я не определил, что в моей модели было присвоено значение «Масса», определяя атрибут «fillable» в моей модели.

Как это:

protected $fillable = array(); 

Этот массив должен содержать имена атрибутов модели, которым разрешено быть заполнена массовой операцией присваивания, как «заполнить».

0

Попробуйте ввести $ data ['user'] в массив.

$user->fill((array)$data['user']); 
Смежные вопросы