Size: a a a

Laravel для начинающих

2020 September 03

Е

Евгений in Laravel для начинающих
на этой строчке ошибка $mechanic = $car->getResults()->belongsTo(Mechanic::class, 'mechanic_id');
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
нет, выдаёт как и до этого ошибку Call to a member function belongsTo() on null
Не, нормальную связь если сделать
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
Не, нормальную связь если сделать
это как?
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
это как?
А, у тебя там через car

whereHas('car.mechanic.owner'... Тоже не подходит?
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
А, у тебя там через car

whereHas('car.mechanic.owner'... Тоже не подходит?
Call to undefined method App\Mechanic::owner()
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
А, у тебя там через car

whereHas('car.mechanic.owner'... Тоже не подходит?
кстати где про это почитать ?
т.е. whereHas('car.mechanic.owner'
нотация через точку
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
кстати где про это почитать ?
т.е. whereHas('car.mechanic.owner'
нотация через точку
Точечная нотация, в гугле
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
Call to undefined method App\Mechanic::owner()
Так создай связь owner
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
Так создай связь owner
кстати car.mechanic.owner это ведь перекрывает вышеприведённый метод,
т.е. я мог его совсем не создавать, и работало бы так:
whereHas('car.mechanic', function  ...
источник

Е

Евгений in Laravel для начинающих
по идее должно работать так:
whereHas('mechanic', function...
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
по идее должно работать так:
whereHas('mechanic', function...
Если хочешь так, то hasOneThrough должен же помощь?
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
Если хочешь так, то hasOneThrough должен же помощь?
не, это я уже делал, работает только для mechanic, для owner нет
источник

Gt

Galèriarch the Koban... in Laravel для начинающих
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
не, это я уже делал, работает только для mechanic, для owner нет
Потому что он у тебя через два
источник

Е

Евгений in Laravel для начинающих
так и mechanic и owner через два, для mechanic работает
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
так и mechanic и owner через два, для mechanic работает
В плане через 2? Механик через 1
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
не, это я уже делал, работает только для mechanic, для owner нет
Есть пакет для этого https://github.com/staudenmeir/eloquent-has-many-deep
источник

Е

Евгений in Laravel для начинающих
Owner model
public function mechanic(){
   return $this->hasManyThrough('App\Models\Mechanic', 'App\Models\Car');
}
источник

Е

Евгений in Laravel для начинающих
Евгений
Owner model
public function mechanic(){
   return $this->hasManyThrough('App\Models\Mechanic', 'App\Models\Car');
}
это не работает
источник

Е

Евгений in Laravel для начинающих
Mechanic model
public function owner(){
   return $this->hasManyThrough('App\Models\Owner', 'App\Models\Car');
}
а это работает, но нужно наоборот, из owner->mechanic
источник