2017-02-11 23 views
1

Это пример кода, в какой-то контроллер у меня есть:Сохранение поля внутри таблицы базы данных с помощью красноречивого Laravel - Userfrosting

$arr = json_decode($post['arr_json']); 
for ($i = 0; $i < count($arr); $i++) { 
    $port = Port::where('id', $arr[$i]->id)->first(); 
    $port->company_a_json = $arr[$i]; 
    $port->save(); 
} 

это им ошибка при получении:

Call to undefined method Illuminate\\Database\\Eloquent\\Collection::save() 

Я не получить вещь с коллекцией. никогда не случалось со мной раньше. Почему этот код, например, не бросает ошибку коллекции?

$comps = Comp::where('id', $post['id'])->get(); 

     foreach ($comps as $comp){ 
      $comp->base_price_20 = $post['base_price_20']; 
      $comp->base_price_40 = $post['base_price_40']; 
      $comp->save(); 
     } 
+1

Попробуйте отладить переменную $ port. print_r ($ port); ... Кажется, что модель Laravel Port возвращает коллекцию вместо модели, но это невозможно. Я всегда использую это, и он работает правильно. Или ошибка принадлежит другому фрагменту кода. –

ответ

1

окончательно работает! только пришлось изменить эту строку:

$port->company_a_json = json_encode($arr[$i]); 

Моя догадка до теперь $ обр [$ я] возвратил коллекцию в $ port-> company_a_json. Нужно использовать JSON.stringify.

большое спасибо в любом случае!