Не могу использовать где в красноречивом

Я использую Eloquent ORM в Laravel. Есть 2 модели, User и Trans. Пользователь имеет много транс, а транс принадлежит пользователю. Проблема в том, что когда я использую запрос, где он не работает.

Я пытался с помощью ->get() в последнем коде это все еще не работает. Я пытался с помощью ->all() в последнем коде это все еще не работает. Я пробовал где, это все еще не работает.

Модель пользователя

public function trans()
{
    return $this->hasMany('App\Trans', 'user_id');
}

Транс Модель

public function user ()
{
    return $this->belongsTo('App\User','user_id');
}

контроллер

$trans = Auth::user()->trans->where('date', $date);

Я хочу, чтобы вывод основывался на запросе, где дата основана на вводе пользователем, когда я удаляю ->where, это работает, и вывод, как это.

Collection {#797 ▼
  #items: array:13 [▼
    0 => Trans {#783 ▶}
    1 => Trans {#784 ▶}
    2 => Trans {#785 ▶}
    3 => Trans {#786 ▶}
  ]
}

1 ответ

Решение

Попробуй так измениться

Auth::user()->trans->where('date', $date);

в

Auth::user()->trans()->where('date', $date)->get();

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

Другие вопросы по тегам