Ошибка преобразования массива в строку при перемещении данных из одной таблицы в другую - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь переместить данные в таблицу корзины и удалить их из таблицы пользователя одновременно с указанной выше ошибкой. До сих пор я пробовал код под

 public function deleteUser($id)
 {
        $recycle=User::where('id',$id)->first();

        $cycle = new RecycleBin();
        $cycle->name = $recycle->name;
        $cycle->email = $recycle->email;
        $cycle->user_type = $recycle->user_type;
        $cycle->save();
        User::where('id',$id)->delete();
     return redirect()->back()
             ->with('message','Deleted Successfully');
 }

любым, кто может мне помочь.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

используя where, php дает вам массив, для того, чтобы иметь только один объект, вы можете использовать first(), например:

User::where('id',$id)->first()->delete();

, как вы можете сделать это:

$recycle->delete()

другое предложение - использовать soft delete

0 голосов
/ 24 апреля 2020

Проверьте эту функцию, она основана на примере, который вы показали в своем вопросе. Лучше передавать пользователя в качестве параметра, а не искать его в функции. Функция deleteUser должна удалять пользователя и не должна искать пользователя.

Я назвал recyclebin $ bin, чтобы было легче понять, что мы работаем с recyclebin.

public function deleteUser(User $user)
{
    $bin = new RecycleBin();
    $bin->name = $user->name;
    $bin->email = $user->email;
    $bin->user_type = $user->user_type;
    $bin->save();
    $user->delete();
    return redirect()->back()->with('message', 'Deleted Succesfully');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...