GET не будет передан - PullRequest
0 голосов
/ 12 мая 2019

У меня проблема с этим GET.Я хочу передать три значения (ygo, dane, 1) со ссылкой на индекс, чтобы эти значения были введены в соответствующем WHERE.Но, к сожалению, на странице нет значения, и я просто не знаю, почему.

IMG: https://screenshots.firefox.com/g6qcToRn.../127.0.0.1

Контроллер:

public function index($slug) {
    $url = 'edition/index';
    $array = explode ('/',$url);
    $data['array'] = $array[0];
    $data['title'] = 'Edition Liste';
    $data['edition_listes'] = $this->Edition_model->edition_listess($slug);
    $this->load->view('templates/header', $data);
    $this->load->view($url, $data);
    $this->load->view('templates/footer');
}
public function edition($tcg,$id,$short) {
    $url = 'edition/edition';
    $array = explode ('/',$url);
    $data['array'] = $array[0];
    $data['get_edition'] = $this->Edition_model->get_edition($tcg,$id,$short);
    $this->load->view('templates/header', $data);
    $this->load->view($url, $data);
    $this->load->view('templates/footer');
} 

Модель:

public function edition_listess($slug) {
    $this->db->select('*');
    $this->db->from('db_edition');
    $this->db->where('db_edition.tb_edition_tcg', $slug);
    $this->db->order_by('db_edition.tb_edition_kurzel', 'ASC');
    $this->db->order_by('db_edition.tb_edition_date', 'ASC');
    $query = $this->db->get();
    return $query->result_array();
}
public function get_edition($tcg,$id,$short) {
    $this->db->select('*');
    $this->db->from('db_edition');
    $this->db->where('db_edition.tb_edition_tcg', $tcg);
    $this->db->where('db_edition.tb_edition_id', $id);
    $this->db->or_where('db_edition.tb_edition_kurzel', $short);
    $this->db->order_by('db_edition.tb_edition_kurzel', 'ASC');
    $this->db->order_by('db_edition.tb_edition_date', 'ASC');
    $query = $this->db->get();
    return $query->result_array();
} 

index.php

<?php echo validation_errors(); ?>
<title><?php echo $title; ?></title>

<div class="row">
    <div class="col-xs-6 col-lg-1">
    </div>
    <div class="col-xs-6 col-lg-10">
    <?php foreach ($edition_listes as $edition_liste): ?>
        <div class="list-group">
            <a href="<?php echo base_url(); ?>edition/edition/<?php echo $edition_liste['tb_edition_tcg'];?>/<?php if($edition_liste['tb_edition_kurzel'] > '') { echo $edition_liste['tb_edition_kurzel']; } else { echo $edition_liste['tb_edition_id']; } ?>" class="list-group-item list-group-item-action list-group-item-secondary">
                <div class="media">
                    <img class="media-object img-rounded img-responsive"  src="<?php echo base_url(); ?>/assets/images/display.png" alt="placehold.it/350x250">
                    <div class="media-body">
                        <h4 class="list-group-item-heading"><?php echo $edition_liste['tb_edition_name'];?></h4>
                        <p class="list-group-item-text">
                            <b>SET ID: </b><?php if($edition_liste['tb_edition_kurzel']): echo $edition_liste['tb_edition_kurzel']; endif; ?></br>
                            <b>Kartenmenge: </b><?php echo $edition_liste['tb_edition_size'];?></br>
                            <b>Release: </b>00.00.0000
                        </p>
                    </div>
                    <div class="col-md-3 text-right">
                        <h5 class="colors">Pre-Release: <button class="btn btn-primary"><i class="fa fa-check-square"></i></button></h5>
                        <h5 class="colors">Pre-Release: <button class="btn btn-primary"><i class="fa fa-square"></i></button></h5>
                    </div>
                </div>
            </a>
        </div>
    <?php endforeach; ?>
    </div>
    <div class="col-xs-6 col-lg-1">
    </div>
</div>

edition.php (тестовая страница)

<?php echo validation_errors(); ?>
<?php echo $slug; ?>

1 Ответ

0 голосов
/ 12 мая 2019

Похоже, вы не передаете третий аргумент edition($tcg,$id,$short).Это, вероятно, означает, что ваша модель использует null для значения $short при вызове $this->db->or_where('db_edition.tb_edition_kurzel', $short);, поэтому она, вероятно, не возвращает никаких записей.

Ваш код может быть намного проще для чтения.Вот предложение кода-фрагмента о том, как создать ссылку на контроллер редакции

...
<div class="list-group">
    <?php
    $tcg = $edition_liste['tb_edition_tcg'];

    if($edition_liste['tb_edition_kurzel'] !== '') // use a more reliable test for an empty string than > ''
    {
        $id = $edition_liste['tb_edition_kurzel'];
    }
    else
    {
        $id = $edition_liste['tb_edition_id'];
    }

    $short = 1;
    ?>
    <a href="<?= base_url("edition/edition/$tcg/$id/$short"); ?>" class="list-group-item list-group-item-action list-group-item-secondary">
...

В случае, если вы не знакомы с синтаксисом, <?= точно такой же, как <?php echo - но с большимменьше печатать.

Теперь предложение бонуса.Я не совсем уверен, почему вы используете этот код

$url = 'edition/index';

Существует способ получить текущий контроллер и метод без его жесткого кодирования.

$url = $this->router->class . '/' . $this->router->method;

Таким образом, есливы переименовываете контроллер или метод, вам не нужно менять жестко запрограммированную строку.Да!

CodeIgniter не документирует класс маршрутизатора, но исходный код находится в /system/core/Router.php, и каждый контроллер будет иметь экземпляр класса маршрутизатора, доступный как свойство $this->router.

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