2016-10-20 3 views
2

У меня проблема. Мне нужен последний вставленный идентификатор из таблицы, который должен быть добавлен в ту же таблицу, т. Е. В моей таблице есть два поля «id» и «translation-of», они оба должны сохранять одно и то же значение. Поле Id является автоматическим приращением. Как реализовать это ???? Am также загружать категории, используя Excel в этом случае также та же проблема ... Пожалуйста, помогите мне с этим ....Получить последний вставленный идентификатор, используя laravel

моя функция контроллера

$insert[] = ['translation_lang'=>'en','parent_id' =>$a[0],'name' => $value->name,'slug' =>$value->name,'description' => $value->description,'picture'=>$pic,'active'=>1]; 

$last_id = \DB::table('categories')->max('id'); 

if(!empty($insert)){        
    \DB::table('categories')->insert($insert); 
    \DB::table('categories')->where('id2',$last_id)->update(['translation_of' => $last_id]); 
    return Redirect::to('admin/category'); 
} 

Ожидание ответа.

+0

Сохранение одной и той же информации дважды звучит как потеря памяти. Возможно, вам нужно изменить свой сценарий или дать немного больше информации о том, что вы пытаетесь сделать. – RST

ответ

2

Вместо использования

\DB::table('categories')->insert($insert); 

Использование

\DB::table('categories')->insertGetId($insert); 

Метод insertGetId вставляет данные, а затем возвращает инкрементированный идентификатор вставленной строки.

+0

Получение ошибки при использовании «\ DB :: table ('categories') -> insertGetId ($ insert);" –

+0

Ошибка ---- "ОшибкаException в строке helpers.php 747: preg_replace(): Несоответствие параметров, pattern является строкой, а заменой является массив « –

+0

Это потому, что вставка должна быть только' '' array''', а не '' 'array''' в' '' array'''. Итак, вместо '' '$ insert [] = ['tra ...' '' do '' '$ insert = [' tra ...' ''. Это связано с тем, что для возврата соответствующего идентификатора требуется одна строчка. –

1

использование insertGetId вместо вставки

$id=DB::table('categories')->insertGetId($insert); 

$id ваша последняя вставка ID

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