PHP SQL-запрос не обновляет значения в базе данных - PullRequest
0 голосов
/ 15 октября 2018

Я работаю над приложением Laravel, и на одной из страниц показана таблица с информацией о конкретных учетных записях (отсортировано по AccountUserId).

Я хочу добавить в эту таблицу два столбца, чтобы разрешитьПользователь должен ввести letter addressee name & preferred addressee name, чтобы добавить эти поля в учетную запись.

Я внес соответствующие изменения в базу данных - добавил столбцы letterAddresseeName & preferredAddresseeName в account.accountтаблица - эти два поля применимы только к записям в таблице, чье поле typeId имеет значение «4» (это означает, что они являются лицом, ответственным за оплату остатка на счете).

Я добавилнесколько пользователей учетных записей в клиентской части и запросили базу данных с помощью SQL SMS, и я вижу, что пользователи существуют в таблице account.account (я выполнил запрос в поиске имен, добавленных для этих учетных записей).Однако, хотя я добавил данные в поля letterAddresseeName & preferredAddresseeName в таблице, эти поля в базе данных по-прежнему оставались пустыми.

Я пытаюсь написать SQL, мне потребуется обновить этиполей, но я не особо использовал SQL за последние десять лет или около того, я немного с ним справился.

В файле AccountsController.php я добавил следующую функцию в AccountsController class:

class AccountsController extends Controller
{
    use AccountsTrait;
    ...
    public function addAddresseesToAccount(Request $request)
    {
        $accountId = $request->input('accountId');
        $sqlArgs = [];
        $addAddresseesToAccountSQL = $this->addAddresseesToAccountSQL( $accountId, $sqlArgs );

        $addressees = DB::select(
            $addAddresseesSQL,
            $sqlArgs
        );
    }
    ...
    public functionaddAddresseesToAccountSQL($accountId, &$sqlArgs, $letterAddresseeName, $preferredAddresseeName)
    {
        $sqlArgs['accountId'] = $accountId;
        $addAddresseesSQL = "
            UPDATE ACCOUNT.ACCOUNT
            SET letterAddresseeName = $letterAddresseeName, preferredAddresseeName = $preferredAddresseeName
            WHERE accountId = $accountId;
        ";

        return $addAddresseesSQL;
    }
}

В HTML для полей, которые я добавил, я установил атрибут ng-change для вызова этой функции PHP:

<!--Letter Addressee Name -->
<td *ngIf="!responseData.loading" class="width-1 visible-lg-table-cell">
    <input type="text" name="letterAddresseeNameTextField" ng-value= getLetterAddresseeName(responseData) ng-change = "AccountsController.addAddresseesToAccount()"><br>

</td>

<!--Preferred Addressee Name -->
<td *ngIf="!responseData.loading" class="width-1 visible-lg-table-cell">
    <input type="text" name="preferredAddresseeNameTextField" ng-value = getPreferredAddresseeName(responseData) ng-change = "AccountsController.addAddresseesToAccount()" ><br>

</td>

Что яздесь делаешь неправильно?Нужно ли вызывать функцию PHP через функцию Angular, а не вызывать ее напрямую?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...