Laravel, получает данные определенного столбца из таблицы и сохраняет их под другим именем столбца в другой таблице

#php #laravel

#php #laravel

Вопрос:

У меня есть две таблицы, первая выглядит так:

 Id   Name   Email           Password
1    Jack   Jack@gmail.com  Ksecneidsw54?

Schema::create('users', function (Blueprint $table) {
                $table->id();
                $table->string('name');
                $table->string('email')->unique();
                $table->string('password');
            }
 

Второй пустой:

 Id   Username

Schema::create('join_public', function (Blueprint $table) {
            $table->id();
            $table->string('username');
            $table->timestamps();
        }
 

Я хочу скопировать имя, например (Jack), из первой таблицы и поместить его в столбец {Username} во второй таблице.

Это должно выглядеть так

 Id   Username
1    Jack
 

Как я могу это сделать?

Комментарии:

1. объясните подробнее, пожалуйста. также делитесь схемой и кодом.

2. @r89human я сделал. Мне просто нужно скопировать одно конкретное значение в другую таблицу, что-то вроде функции replicate, но для одного значения.

3. вы используете модели или ничего?

4. Да, я использую модели.

Ответ №1:

если вы не используете модели.

 $user = DB::table("users")->where('name', '=', 'Jack')->first();
DB::table('join_public')->insert(['username' => $user->name]);
 

если вы используете модели, то

 $user = User::where('name', '=', 'Jack')->first();
JoinPublic::create(['username' => $user->name]);
 

и добавьте эту строку в model JoinPublic

 protected $table = 'join_public';
protected $fillable = ['username'];