Я создаю CRUD-приложение laravel / vue.js, и сейчас у меня все отлично, но меня беспокоит качество моих запросов к базе данных после обновления данных.
Я использую getAllData() каждый раз, когда я обновляю строку в базе данных.Теперь, когда у меня есть несколько записей в базе данных, не проблема каждый раз запрашивать сервер и отображать новый список в vue, но когда у меня будет несколько тысяч строк, это сделает мое приложение медленным и тяжелым.
Теперь я обновляю базу данных следующим образом:
Это часть моей функции обновления vue.js:
updateStatus: function(id){
var index = _.findIndex(this.rows,["id",id]);
if (this.rows[index].pay_status=="waiting"){
axios.put("http://127.0.0.1:8000/api/payments/"+id
,{pay_status:"payed"}).then((response)=>{
this.getAllData();
}
Это my vue.js getAllDataфункция:
getAllData: function(){
axios.get("http://127.0.0.1:8000/api/payments").then((response)=>{
this.rows = response.data;
});
}
и мой PaymentsController:
namespace App\Http\Controllers;
use App\Payments;
use App\Suppliers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Faker\Generator;
class PaymentsController extends Controller
{
public function index()
{
$payments = Payments::with('suppliers')->get();
return response($payments, Response::HTTP_OK);
}
}
моя функция обновления:
public function update(Request $request, $id)
{
$payments = new Payments();
payments::where('id', $id)->update($request->all());
}
Есть ли способ сделать обновление более эффективным способом, например, получить только обновленную строку из базы данных и поместить ее в существующий объект со строками?А может, мне не стоит об этом беспокоиться?