Mam stół z 3 identyfikatorem z innych kolumn. Jak dołączyć więcej niż 2 identyfikator? Nie wiem, jak przymocować trzy klucze. Kiedy próbuję zrobić "$ Weather-> Parks () -> Dołącz (" 1 ') -> Użytkownicy () -> Dołącz (' 2 '); " Nie dołącza Park_id. Proszę pomóż.

Schema::create('weather_user_park', function (Blueprint $table) {
        $table->integer('weather_id')->unsigned();
        $table->integer('park_id')->unsigned();
        $table->integer('user_id')->unsigned();
        $table->foreign('weather_id')->references('id')->on('weathers');
        $table->foreign('park_id')->references('id')->on('parks');
        $table->foreign('user_id')->references('id')->on('users');
    });

Mam też 3 modele:

park.php

public function weathers()
{
    return $this->belongsToMany('App\Weather', 'weather_user_park');
}

    public function users()
{
    return $this->belongsToMany('App\User', 'weather_user_park');
}

User.php

public function weathers()
{
    return $this->belongsToMany('App\Weather', 'weather_user_park');
}

    public function parks()
{
    return $this->belongsToMany('App\Park', 'weather_user_park');
}

pogoda.php

       public function users()
{
    return $this->belongsToMany('App\User', 'weather_user_park');
}

    public function parks()
{
    return $this->belongsToMany('App\Park', 'weather_user_park');
}
2
M. Michael 15 luty 2017, 22:53

2 odpowiedzi

Najlepsza odpowiedź

park.php

public function users()
{
    return $this->belongsToMany('App\User', 'park_user')->withPivot('weather');
}  

User.php

public function parks()
{
    return $this->belongsToMany('App\Park', 'park_user')->withPivot('weather');
}

park->users(); zapewnia informacje o parku

Możesz dodać informacje do użytkownika tak:

$park = App\Park::find(1);
$weather = App\Weather::find($id);
$user->parks()->attach($park->id, ['weather' => $weather->id]); 

Aby usunąć relację

$user->parks()->detach($park->id);
0
Jon Awoyele 15 luty 2017, 21:44

Możesz to zrobić, dodając drugi parametr do mocowania metody.

$weather->parks()->attach(1, [
    'user_id' => 2,
]);

https://llavel.com/docs/5.4/ elokwentne relacje # aktualizowanie-wiele do wielu relacji https://llavel.com/docs/5.4/elovent-relacje Wiele do wielu (zwłaszcza "pobieranie półproduktów kolumn tabeli")

0
Filip Sobol 15 luty 2017, 20:19