Неизвестный столбец «имеет» в предложении «где» - PullRequest
0 голосов
/ 24 октября 2019

Я использую laravel 5.7

Когда я использую whereHas для проверки существования отношения, я сталкиваюсь с Unknown column "has" in 'where clause Ошибка! Почему?

это мой код:

$query->whereHas('departures', function ( $query) {
    $query->whereBetween('depart_date', [date($this->data['departFrom_date']), date($this->data['departTo_date'])]);
});

и это моя модель:

    public function departures()
    {
        return $this->hasMany(CruiseSailingDepartures::class);
    }

Обновление:

Запрос был запущен с:

$query = DB::table('table_name');

Ответы [ 3 ]

3 голосов
/ 24 октября 2019

Поместите внешний ключ и локальный ключ в отношения.

public function departures()
{
    return $this->hasMany('App\Model\CruiseSailingDepartures','foreign_key','local_key');
}

$res = BaseModel::find($id);
foreach($res->departures as $departures)
{
  echo $departures->name; //whatever field you have in CruiseSailingDepartures table
}
0 голосов
/ 24 октября 2019

Я нашел свою проблему, я использовал DB::table('tablename') вместо модели (TableName:: ...)

Спасибо за все ответы

0 голосов
/ 24 октября 2019
$model = YourModel::with('departures')->whereHas('departures', function($query) use ($this) {
    $query->whereBetween('depart_date', [date($this->data['departFrom_date']), date($this->data['departTo_date'])]);
})->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...