Запрос НА ОБНОВЛЕНИЕ в php laravel не работает, fetchAll()

#php #mysql #laravel #sql-update

#php #mysql #laravel #sql-обновление

Вопрос:

Я пишу код для сервера, и одна из функций, которые я должен выполнить, должна обновить все поля таблицы (обычно) пользователя с определенным идентификатором. Функции удаления и выбора работают отлично, но эта, похоже, вообще не работает. Ошибка является фатальной ошибкой: вызов функции-члена fetchAll() при логическом вводе…

Я попытался создать меньшую функцию, которая обновляет, думая, что, возможно, причина ее сбоя заключалась в том, сколько аргументов я ей давал. Однако никаких изменений в результатах

 function update($request, $response, $args){
    $db = $this->db;
    $query = "UPDATE usuario set IdRh = ". $args['idRh'].", IdEps =".$args ['IdEps'].", IdTipoDeDocumento =".$args['IdTipoDeDocumento'].", NroDeDocumento=".$args['NroDeDocumento'].", Nombre=".$args['Nombre'].", Apellido=".$args['Apellido'].",TelefonoFijo=".$args['TelefonoFijo'].", Celular=".$args['Celular'].", Email = ".$args['Email'].", Direccion =".$args['Direccion'].", Contrasena=".$args['Contrasena'].", FechaDeNacimiento =".$args['FechaDeNacimiento']." where id=". $args['id'].""; 
    $result = $db->query($query);
    return $response->withJson(
        [
            "status" => 101,
            "data" => $result->fetchAll(),
            "message" => "Usuario de Id: " .$args['id']. " ha sido actualizado.",
        ], 200
    );
}

$app->get('/usuariou/{id}/{IdRh}/{IdEps}/{IdTipoDeDocumento}/{NroDeDocumento}/{Nombre}/{Apellido}/{TelefonoFijo}/{Celular}/{Email}/{Direccion}/{Contrasena}/{FechaDeNacimiento}', "UsuarioController:update");
 

Я просто хочу обновить поля и быстро избавиться от ошибки.

Ответ №1:

На мобильных устройствах, так что простите грамматические ошибки, давайте начнем с вашей функции и предположим, что вы используете laravel 5

 Public function update(Request $request, $args){
   //...code
 }
 

Похоже, что вы не вызываете запрос для фактической передачи каких-либо данных, поэтому нам нужно вызвать метод запроса вместе с переменной запроса.

Во-вторых, вы должны создать модель с нужной вам таблицей базы данных, чтобы она выглядела так.

 Public function update(Request $request, $args){
   $data = $request->all();
   $query = Usario::update([
   ‘Value_1’ => $data[‘value’],
   ]);
   If($query){
   Return response()->json([status" => 101,
        "data" => $result->fetchAll(),
        "message" => "Usuario de Id: " .$args['id']. " ha sido actualizado.",
    ], 200
   }
 }
 

Здесь мы передаем наши значения методу обновления, который вызывается в созданной модели, вторая проблема заключается в том, что когда вы используете fetch all, я считаю, что он возвращает значение bool, а не какие-либо результаты

Итак, мы можем попробовать что-то вроде этого

 $query = Usario::update([
   ‘Value_1’ => $data[‘value’],
   ])->fetchAll();
 

Также еще раз на мобильном телефоне, поэтому я попробовал, дайте мне знать, если вам нужна дополнительная помощь, и мы разберемся с этим утром