Я использую whereHas во вложенном where where, но я не могу этого сделать. Ниже моя модель:Laravel: Не удалось получить доступ. Отношение toMany вложенное whereHas
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function scopePickedUser($query, $pickedTypeID)
{
return $query->where(function($query) use ($pickedTypeID)
{
$query->whereHas('photos', function($query) use ($pickedTypeID)
{
$query->whereTypeId($pickedTypeID);
});
if($condition){
$query->orWhere('another_column_id',$var);
}
});
}
public function photos()
{
return $this->belongsToMany(Photo::class);
}
}
Если я называю, App\Models\User::pickedUser(4)->get()
я получаю сообщение об ошибке BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::photos()'
. Почему это? Что я делаю не так?
Попробуйте этот раз App \ Models \ User :: с ('фото') -> pickedUser (4) -> Get() – vijaykumar