Мне очень нравится, как laravel поддерживает отношения только с некоторыми строками кода. Но когда есть огромный объем данных, он замедляется, делая множество запросов в базу данных.Laravel Relationships vs. Runtime -> как уменьшить количество запросов к файлам данных
class Object extends Model {
public function users() {
return $this->hasMany(User::class);
}
}
class User extends Model {
proteced $appends = [
'url'
];
public function object() {
return $this->belongsTo(Object::class);
}
public function getUrlAttribute() {
return 'exmaple.com/object/' . $this->object->value . '/user/' . $this->id;
}
}
Когда я называю
return Object::with('users')->find(2);
он будет делать всегда новый запрос к базе данных для генерации URL.
Так есть ли чистый способ уменьшить количество запросов, чтобы я мог ускорить приложение?
Кэш можно использовать, например, с помощью этого пакета: https://github.com/dwightwatson/rememberable. Или используйте 'Object :: with ('users') -> get()' для извлечения всех объектов, а затем используйте foreach – balping
Я пробовал обычную функцию кеширования laravel с файлом, но время все равно. – mimo