Как вставить запрос в базу данных, используя Laravel? - PullRequest
0 голосов
/ 10 января 2020

У меня есть этот запрос

$data = DB::table('incidencias')
   ->join('clientes_incid', 'clientes_incid.rif', '=', 'incidencias.rif')
   ->select('incidencias.rif')
   ->distinct()
   ->get();

И я хочу вставить информацию этого запроса в новую таблицу в моей базе данных

Как я могу это сделать? кто-нибудь может мне помочь?

Ответы [ 5 ]

0 голосов
/ 12 января 2020
 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');
    }
0 голосов
/ 11 января 2020

Вы можете вставить данные, подобные этим

DB::table('table')->insert($data);

Вставить принимаемые массивы

0 голосов
/ 10 января 2020

У вас есть данные из первой таблицы, так что вы почти у цели. Исходя из текущего формата, вы можете l oop через него и insert() в новую таблицу.

Некоторый псевдокод:

foreach ($data as $inData) {
    DB::table('some_new_table')->insert(['column1' => $inData->column1, 'column2' => $inData->column2, ...]);
}
0 голосов
/ 11 января 2020

Вы можете создать представление в своей базе данных для этой ситуации. создайте миграцию и в методе up напишите ваш sql, и он будет автоматически заполнен вашей базой данных.

  public function up()
  {
    DB::statement("
      CREATE VIEW clients_view AS
      (
         // wirte your sql command here
      )
    ");
  }
0 голосов
/ 10 января 2020

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

Пример:

$user = new User();
$user->name = "Not set";
$user->email = $email;
$user->password = NULL;
$user->save();

$accounts = new Account();
$accounts->email = $email;
$user->account()->save($accounts);

$userAccount = new UserAccount();
$userAccount->userAccount()->sync([
   $user->id,
   $accounts->id

Laravel Отношения: https://laravel.com/docs/5.8/eloquent-relationships#inserting -and-update-related-models

Laravel Запросы: https://laravel.com/docs/5.8/queries#inserts

...