2016-04-30 3 views
1

Я не могу заставить мой код работать на 100%. Я пытаюсь заставить свой код работать таким образом:Обновление поля db, если данные присутствуют

если значение столбца пуст ($id = columnName), тогда вставьте в эту строку. Если есть найденное значение «0», то значение $id затем обновит значение, уже сохраненное в БД.

Функция:

 $socialCheck = SocialSettings::where($id)->first(); 

     $socialInsert = new SocialSettings; 

     $value  = Request::input('value'); 


     if(SocialSettings::where_not_null($id)){ 

      $socialInsert->$id = $value; 
      $socialInsert->save(); 
    }else{ 
     $socialCheck->update($value); 

    } 

    } 
+0

Если вы используете mysql и готовы подготовить оператор привязки с помощью ['DB :: raw()') (http://fideloper.com/laravel-raw-queries), вы можете использовать ['REPLACE INTO' ] (http://stackoverflow.com/questions/19820724/replace-into-query-syntax) заявление –

+0

ли вы нашли решение? –

ответ

1

Вот Exemple от подобного вопроса

$user = User::firstOrNew(array('name' => Input::get('name'))); 
$user->foo = Input::get('foo'); 
$user->save(); 

Как это

$socialCheck = SocialSettings::firstOrNew(array('id' => $id)); 
$socialCheck = Request::input('value'); 
$socialCheck->save(); 

firstOrNew Laravel API DOCS

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