Для вашего вопроса я предлагаю использовать eloquent , как настроить ваши модели
class Project extends Model
{
public function images()
{
return $this->hasMany(\App\Models\Image::class, 'project_id');
}
public function user()
{
return $this->belongsTo(\App\Models\User::class, 'user_id');
}
}
class Image extends Model
{
public function project()
{
return $this->belongsTo(\App\Models\Project::class, 'project_id');
}
}
Теперь, чтобы найти проекты с их изображениями, вы можете запросить как
$projects = Project::with('images')->get();
Каждый объект в $projects
будет иметь коллекцию связанных изображений.
Чтобы добавить фильтр для пользователя, вы можете использовать whereHas
для отношений
$projects = Project::with('images')
->whereHas('user', function ($query) use ($user) {
$query->where('id', '=', $user->id);
})->get();