Не могу использовать где в красноречивом - PullRequest
0 голосов
/ 05 января 2019

Я использую 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 Ответ

0 голосов
/ 05 января 2019

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

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

до

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

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

.
...