2014-10-06 3 views
0

Итак, моя проблема в том, что мой вызов ajax не обновляется правильно. Это то же самое, что и многие функции, как у меня, это просто не обновление значений. Хотя, я могу запустить запрос на свой собственный в mysql и обновить его. Функция приведена ниже:Обновление Laravel не обновляет таблицу

/* 
* "elerts/quicksave" > Update elert from all screen 
*/ 
public function quicksave($id) 
{ 
    $data = (object)Input::get(); 

    $ev = Events::find($id); 
    $ev->limit   = $data->limit; 
    $ev->EventEnabled = $data->EventEnabled; 
    $ev->SundayStart = $data->SundayStart; 
    $ev->MondayStart = $data->MondayStart; 
    $ev->TuesdayStart = $data->TuesdayStart; 
    $ev->WednesdayStart = $data->WednesdayStart; 
    $ev->ThursdayStart = $data->ThursdayStart; 
    $ev->FridayStart = $data->FridayStart; 
    $ev->SaturdayStart = $data->SaturdayStart; 
    $ev->save(); 

    $queries = DB::getQueryLog(); 
    $last_query = end($queries); dd($last_query); 

    return "Your eLert has been saved!"; 
} 

Ниже приведен пример ввода идентификатора примера и пример объекта $ data, который проходит.

$id = '107'; 
object(stdClass)#137 (9) { ["limit"]=> string(3) "400" ["EventEnabled"]=> string(1) "1" ["SundayStart"]=> string(1) "0" ["MondayStart"]=> string(1) "0" ["TuesdayStart"]=> string(1) "0" ["WednesdayStart"]=> string(1) "0" ["ThursdayStart"]=> string(1) "1" ["FridayStart"]=> string(1) "1" ["SaturdayStart"]=> string(1) "1"} 

Я смущен, почему ничего не обновляется. Любая помощь?

EDIT: Ниже я включил код для моей модели, чтобы люди не должны ставить его под сомнение ...

<?php 
/** 
* @author jmadrigal 
* Date: 7/2/14 
* Time: 10:23 AM 
*/ 
class Events extends Eloquent { 

protected $primaryKey = 'eventid'; 
public $timestamps = false; 

protected $fillable = array(
    'eventname', 'eventdescription', 'EventEnabled', 'visitcost', 'groupid', 'flagid', 'SundayStart', 'MondayStart', 'TuesdayStart', 'WednesdayStart', 'ThursdayStart', 'FridayStart', 
    'SaturdayStart', 'limit', 'Vtmpl', 'delayV', 'Etmpl', 'delayE', 'Ttmpl', 'delayT', 'Mtemp', 'delayM', 'Login', 'freqv', 'freqt', 'freqe', 'maxe', 'maxt', 'maxv', 
    'amtide', 'amtidt', 'amtidv', 'apptinterval' 
); 

public function aInterval() { 
    return $this->hasMany('AppointmentInterval'); 
} 
} 
+0

Является ли ваша модель «События» недавно добавленной моделью? Кроме того, если вы возвращаете '$ data', мы получаем' object (stdClass) # 137 (9) {["limit"] => string (3) "400" ["EventEnabled"] => string (1) "1" ["SundayStart"] => string (1) "0" ["MondayStart"] => string (1) "0" ["TuesdayStart"] => string (1) "0" ["WednesdayStart"] => string (1) "0" ["ThursdayStart"] => string (1) "1" ["FridayStart"] => string (1) "1" ["SaturdayStart"] => string (1) "1"} ' верный? –

+0

Модель событий фактически была использована в течение хорошей минуты. Это было там пару месяцев. И это правильно. Фактически, я обновляю свой код, чтобы включить модель, чтобы люди могли видеть, где я нахожусь. – jamadri

ответ

0

Тип, который отправляется «строка» для любого флажка, не происходит, потому что значения должны быть значением (int) или значением (bool) «1» или «0». Это была проблема. База данных была создана год назад кем-то другим, и я до сих пор этого не понимал. Это исправлено.

+0

Должно быть, это было глупо, не так ли? –

+0

Ненавижу, когда это происходит. Потому что что-то настолько ясное может быть всевозможным нечетким, когда это не ваше внимание, и основное внимание уделяется кодексу. – jamadri

1

Более вероятно, что вы не defined the mass-assignment attributes ваш Events модель.

Так что в вашем Events модели попробовать:

protected $fillable = array('limit', 'EventEnabled', 'SundayStart', 'MondayStart', 'TuesdayStart', 'WednesdayStart', 'ThursdayStart', 'FridayStart', 'SaturdayStart'); 

Это функция безопасности Laravel и помогает предотвратить против вслепую позволяя любые атрибуты, которые будут обновлены.

+0

Я проверил, и каждая переменная, находящаяся в объекте, передается в заполняемом массиве. Но, несмотря на это, я не назначаю массу. Я назначаю каждый из них индивидуально, поэтому здесь прямо не должно быть проблемы. Если я сбрасывал массив с помощью -> update ($ data); Я мог понять, почему я имею дело с этим, но это пока я назначаю их отдельно. – jamadri

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