В блоге, который я пишу, администратор может дать «авторское» разрешение пользователям.
Когда обновление таблицы БД прошло успешно, а для их разрешения установлено «Автор»,Администратор вернется к списку всех текущих авторов.
Я хочу, чтобы сообщение ("Автор был добавлен.", например,) появилось на этом сайте после его успешного завершения.
Конечно, возможность не работающего обновления базы данных минимальна, я думаю, но я хочу, чтобы этот случай был рассмотрен.
Чтобы сделать это, я хотел установить $newAuthor
true
, когда база данных имеетбыл обновлен, но это не сработало, попробовав его с if
.
Вот функции в AdminController и UserRepository с запросом db:
//AdminController
public function permissionAuthor()
{
$id = $_GET['id'];
$permission = "author";
$newAuthor = false;
if($this->userRepository->changePermission($id, $permission)) {
$newAuthor = true;
}
header("Location: authors");
}
//UserRepository
public function changePermission($id, $permission)
{
$table = $this->getTableName();
$stmt = $this->pdo->prepare(
"UPDATE `{$table}` SET `permission` = :permission WHERE `id` = :id");
$changedPermission = $stmt->execute([
'id' => $id,
'permission' => $permission
]);
return $changedPermission;
}
// authors.php / the view
<?php if(isset($newAuthor) && $newAuthor == true):?>
<p class="error">Author has been added.</p>
<?php endif;?>
Как я могу добиться, чтобы $newAuthor
был установлен на true
только когда функция, котораяобновление базы данных прошло успешно, и сообщение для отображения в представлении?
РЕДАКТИРОВАТЬ
Я пробовал с возвращением $changedPermission
в UserRepository
.Это может быть неправильно, потому что ничего не изменилось.