Красноречивый вызов OneToMany Relationships - PullRequest
0 голосов
/ 10 июля 2019

Я создаю приложение, используя Lumen 5.8, и у меня очень простая модель:

class Party extends Model {

    protected $table = 'party';

    public function campaigns(){
        return $this->hasMany('App\Campaign');
    }

}

class Campaign extends Model {

    protected $table = 'campaign';

    public function party(){
        return $this->belongsTo('App\Party');
    }

}

И мои таблицы определены следующим образом:

party (id,name)

campaign (id,name,party_id)

Когда я использую метод find в Campaign или Party, он возвращает правильные строки. Однако, если я пытаюсь использовать отношения и получить все кампании, которые есть у партии, она никогда не возвращает строку.

Я попробовал следующий код:

$campaings = Party::find($id)->campaigns();

и результат пуст! Но если я использую следующее, я могу получить все кампании:

$campaings = Campaign::where('party_id' , $id)->get();

Что я не так делаю?

Спасибо

1 Ответ

0 голосов
/ 11 июля 2019

Чтобы получить строки кампаний, вам нужно добавить ->get() в конец вашего запроса:

Party::find($id)->campaigns()->get();

Или

Party::find($id)->campaigns;
...