почему мой updateOrInsert не работает laravel - PullRequest
0 голосов
/ 13 января 2020

Я использую updateOrInsert, чтобы избежать дублирования данных, почему функция обновления не работает и всегда вставляет данные?

foreach($datas as $data){
                    DB::table('users')->updateOrInsert([
                        'user_connect_id' => $user->connect_id,
                        'description' => $data['description'],
                        'created_by' => $login->name,
                        'modified_by' => $login->name,
                        'created_at' => Carbon::now(),
                    ]);
                }

Ответы [ 3 ]

1 голос
/ 13 января 2020

Проверьте это updateOrInsert , вам нужно два параметра, один - соответствующие атрибуты, другой - ваш массив.

updateOrInsert(array $attributes, array $values = []) 

пример:

DB::table('users')->updateOrInsert(['user_connect_id' => $user->connect_id],
                     [
                        'user_connect_id' => $user->connect_id,
                        'description' => $data['description'],
                        'created_by' => $login->name,
                        'modified_by' => $login->name,
                        'created_at' => Carbon::now(),
                     ]);
0 голосов
/ 13 января 2020
    // Inseart code
 public function create()
    {
        return view('admin.category.create');
    }
     public function store(Request $request)
        {
            $this->validate($request,[
                'name' => 'required'
            ]);
            $category = new Category();
            $category->name = $request->name;
            $category->slug = str_slug($request->name);
            $category->save();
            Toastr::success('Category Successfully Saved','Success');
            return redirect()->route('admin.category.index');
        }
    // Update code
        public function edit($id)
        {
            $category =Category::find($id);
            return view('admin.category.edit',compact('category'));
        }

       public function update(Request $request, $id)
        {
            $this->validate($request,[
                'name' => 'required|unique:categories'
            ]);
            $category = Category::find($id);
            $category->name = $request->name;
            $category->slug = str_slug($request->name);
            $category->save();
            Toastr::success('Category Successfully Updated','Success');
            return redirect()->route('admin.category.index');
        }
0 голосов
/ 13 января 2020

В методе updateOrInsert есть два аргумента. Метод updateOrInsert принимает два аргумента: массив условий для поиска записи и массив пар столбцов и значений, содержащих обновляемые столбцы.

Например:

DB::table('users')
    ->updateOrInsert(
        ['email' => 'john@example.com', 'name' => 'John'],
        ['votes' => '2']
    );

Проверьте эту ссылку на синтаксис: Laravel Do c

...