• 25-01-2023, 13:17:25
    #1
    Merhabalar.

    Laravel kullanıyorum.

    Tablo1
    Tablo2 -> tablo1_id
    şeklinde 2 tane tablom var. Bu tablolara birbirlerinin ID'leri ile ilişkili olarak aynı anda veri eklemem gerekiyor.

    Tablo1'e veriyi ekledikten sonra, onun id'sini Tablo2'ye aynı anda nasıl aktaracağım acaba?
  • 25-01-2023, 13:23:22
    #2
    Modeller arası nasıl bir ilişki olduğunu da belirtseniz daha iyi olurdu.

        $model_1 = Model.create();
        $model_1->model_2()->create();
        // veya
        $model_1 = Model.create();
        $model_2 = Model2.create([
            'model_1_id' => $model_1->id
        ]);
  • 25-01-2023, 13:24:17
    #3
    Tablo1 kaydedildikten sonra
    $tablo= Urun::create(['name' => 'Urun Adı']); 
    $tablo1Id= $tablo->id();
    dönen $tablo1Id verisi tablo2'ye gönderebilirsiniz.
  • 25-01-2023, 13:29:12
    #4
    Relationship

    User ve contact tablosu olduğunu varsayalım

    User modeline contact modelini bağlıyoruz

    // burası user modeli
    public function contact()
    {
      return $this->hasOne(Contact::class);
    }
    // burası controller
    $createdUser = User::create([
      'name' => 'test',
      ...
    ]);
    
    $createdUser->contact()->create([
      // burada user_id bölümü otomatik doluyor çünkü User modeline hasOne ilişkisi tanımladık
      'address' => 'test',
      ...
    ]);
    Dökümantasyon okuyunuz. İlişkiler çok çeşitlidir.
    https://laravel.com/docs/9.x/eloquent-relationships
  • 25-01-2023, 13:30:48
    #5
    $user = User::create([ 'first_name' => 'John', 'last_name' => 'Doe', 'student_rank' => 1 ]);
    if($user){
           $model = Model::create([ 'user_id' => $user->id ]);
    }
  • 25-01-2023, 14:13:38
    #6
    Hepinize çok teşekkür ederim. Cevaplarınızdan ayrı ayrı şeyler farkettim.