преобразовать объект массива из базы данных в строку - PullRequest
0 голосов
/ 04 декабря 2018

В настоящее время я пишу блог, чтобы получить опыт работы с php.

В файле edit.php я хочу указать категорию сообщения, если оно есть.Это edit.php:

    <div class="categories-heading">
    <?php if (!empty($entry->c_Id)): ?>
      <div class="category-heading">
        <h3>Category: <?php echo e($categoryFromId); ?></h3>
      </div>
      <div class="category-heading">
        <h3>change category</h3>
      </div>
    </div>
    <form method="post">
      <div class="categories-post-edit">
        <?php foreach($categories as $cat): ?>
          <div class="category-post-edit">
            <input type="radio" name="category" value="<?php echo e($cat->id); ?>">
              <label> <?php echo e($cat->category); ?></label>
            </input>
          </div>
        <?php endforeach; ?>
      </div>
    </form>
  <?php else: ?>
    <div class="category-heading">
      <h3>choose category</h3>
    </div>
  </div>
  <form method="post">
    <div class="categories-post-edit">
      <?php foreach($categories as $cat): ?>
        <div class="category-post-edit">
          <input type="radio" name="category" value="<?php echo e($cat->id); ?>">
            <label> <?php echo e($cat->category); ?></label>
          </input>
        </div>
      <?php endforeach; ?>

Это часть функции edit() в PostsAdminController.php, которая имеет отношение к этому:

if(!empty($_POST['title']) AND !empty($_POST['subheading']) AND 
!empty($_POST['content'])
AND !empty($_POST['category'])) {
  $entry->title = $_POST['title']; 
  $entry->subheading = $_POST['subheading'];
  $entry->content = $_POST['content'];
  $entry->c_Id = $_POST['category'];

  $this->postsRepository->update($entry);

  $savedSuccess = true;
 }
 $categoryFId = $this->categoryRepository->oneCategory($entry->c_Id); 

 $categoryFromId = $categoryFId['category'];
 var_dump($categoryFromId);

 $this->render("post/admin/edit", [
  'entry' => $entry,
  'savedSuccess' => $savedSuccess,
  'categories' => $categories,
  'categoryFromId' => $categoryFromId
 ]);
}

И этофункция oneCategory в CategoryRepository.php, которая взаимодействует с базой данных.

public function oneCategory($id)
{
 $table = $this->getTableName();
 $model = $this->getModelName();

 $stmt = $this->pdo->prepare("SELECT `category` FROM `$table` 
 WHERE id = :id"); 

 $stmt->setFetchMode(PDO::FETCH_CLASS, $model);
 $oneCategory = $stmt->fetch(PDO::FETCH_CLASS);

 return $oneCategory;
}

oneCategory() выдает массив независимо от того, поставлю ли я SELECT * или SELECT category в запросе, поэтому япоместите $categoryFId['category'] в переменную после.

Это работает, но я думаю, что должен быть более простой или быстрый способ (например, специальные функции или около того), мне просто не удалось найти то, чтоЯ ищу

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