Php Codeigniter显示查询结果的正确方法

Php Codeigniter显示查询结果的正确方法,php,codeigniter,view,controller,modal-dialog,Php,Codeigniter,View,Controller,Modal Dialog,这就是我输出查询结果的方式,但我想知道这是否正确。。 在我看来,当我在做一些php逻辑时,我更喜欢把它放在我的控制器中,不是吗 有人能告诉我这是应该怎么做的,还是我可以如何改进我的代码 控制者: public function reservations() { $this->load->model('admin_model'); $data = $this->admin_model->get_reservations(); $this->l

这就是我输出查询结果的方式,但我想知道这是否正确。。 在我看来,当我在做一些php逻辑时,我更喜欢把它放在我的控制器中,不是吗

有人能告诉我这是应该怎么做的,还是我可以如何改进我的代码

控制者:

public function reservations()
{
    $this->load->model('admin_model');
    $data = $this->admin_model->get_reservations();

    $this->load->view('view_reservations', $data);
}
型号:

function get_reservations()
{
    $this->db->select('*');
    $this->db->from('t_reservation');
    $data['query'] = $this->db->get();  

    return $data;
}
视图:



那么,有没有一种方法可以将php逻辑从我的视图中删除,放到控制器中的某个位置,并拥有一个更清晰的视图?

您的视图应该尽可能少地使用php

控制器应该有
$data
声明,并且模型应该从数据库返回数据

您的for循环似乎有点不必要。你真的只需要一个“开始日期”和“结束日期”。您可以将其放入模型或控制器中,这取决于您是否希望在每次调用
get\u reservations
时返回这些值

控制器

public function reservations()
{
    $this->load->model('admin_model');
    $data['reservations'] = $this->admin_model->get_reservations();
    $this->load->view('view_reservations', $data);
}
public function reservations()
{
    $this->load->model('admin_model');
    $reservations = $this->admin_model->get_reservations();

    foreach ($reservations as $reservation)
    {
        $data['reservation'] = $reservation;
        $this->load->view('view_reservation', $data);    
    }
}
型号

function get_reservations()
{
    $reservations = $this->db->get('t_reservation')->result();

    foreach ($reservations as $reservation)
    {
        $reservation->start_date = date("d-m-Y", strtotime($reservation->date));
        $reservation->end_date = date("d-m-Y", strtotime(date("Y-m-d", strtotime($reservation->date)) . " +".$reservation->days." day"));
    }

    return $reservations;
}
查看 我已经编辑了您的视图,因为我猜您希望每个结果都在一个单独的行中

<? foreach ($reservations as $reservations): ?>
    <div class="row">
        <?= $reservation->name ?>
        <?= $reservation->price ?>
        <?= $reservation->start_date ?> - <?= $reservation->end_date ?>
    </div><!-- /.row -->
<? endforeach ?>
查看

<div class="row">
    <?= $reservation->name ?>
    <?= $reservation->price ?>
    <?= $reservation->start_date ?> - <?= $reservation->end_date ?>
</div><!-- /.row -->

- 

您的视图应该尽可能少使用PHP

控制器应该有
$data
声明,并且模型应该从数据库返回数据

您的for循环似乎有点不必要。你真的只需要一个“开始日期”和“结束日期”。您可以将其放入模型或控制器中,这取决于您是否希望在每次调用
get\u reservations
时返回这些值

控制器

public function reservations()
{
    $this->load->model('admin_model');
    $data['reservations'] = $this->admin_model->get_reservations();
    $this->load->view('view_reservations', $data);
}
public function reservations()
{
    $this->load->model('admin_model');
    $reservations = $this->admin_model->get_reservations();

    foreach ($reservations as $reservation)
    {
        $data['reservation'] = $reservation;
        $this->load->view('view_reservation', $data);    
    }
}
型号

function get_reservations()
{
    $reservations = $this->db->get('t_reservation')->result();

    foreach ($reservations as $reservation)
    {
        $reservation->start_date = date("d-m-Y", strtotime($reservation->date));
        $reservation->end_date = date("d-m-Y", strtotime(date("Y-m-d", strtotime($reservation->date)) . " +".$reservation->days." day"));
    }

    return $reservations;
}
查看 我已经编辑了您的视图,因为我猜您希望每个结果都在一个单独的行中

<? foreach ($reservations as $reservations): ?>
    <div class="row">
        <?= $reservation->name ?>
        <?= $reservation->price ?>
        <?= $reservation->start_date ?> - <?= $reservation->end_date ?>
    </div><!-- /.row -->
<? endforeach ?>
查看

<div class="row">
    <?= $reservation->name ?>
    <?= $reservation->price ?>
    <?= $reservation->start_date ?> - <?= $reservation->end_date ?>
</div><!-- /.row -->

- 

您的视图应该尽可能少使用PHP

控制器应该有
$data
声明,并且模型应该从数据库返回数据

您的for循环似乎有点不必要。你真的只需要一个“开始日期”和“结束日期”。您可以将其放入模型或控制器中,这取决于您是否希望在每次调用
get\u reservations
时返回这些值

控制器

public function reservations()
{
    $this->load->model('admin_model');
    $data['reservations'] = $this->admin_model->get_reservations();
    $this->load->view('view_reservations', $data);
}
public function reservations()
{
    $this->load->model('admin_model');
    $reservations = $this->admin_model->get_reservations();

    foreach ($reservations as $reservation)
    {
        $data['reservation'] = $reservation;
        $this->load->view('view_reservation', $data);    
    }
}
型号

function get_reservations()
{
    $reservations = $this->db->get('t_reservation')->result();

    foreach ($reservations as $reservation)
    {
        $reservation->start_date = date("d-m-Y", strtotime($reservation->date));
        $reservation->end_date = date("d-m-Y", strtotime(date("Y-m-d", strtotime($reservation->date)) . " +".$reservation->days." day"));
    }

    return $reservations;
}
查看 我已经编辑了您的视图,因为我猜您希望每个结果都在一个单独的行中

<? foreach ($reservations as $reservations): ?>
    <div class="row">
        <?= $reservation->name ?>
        <?= $reservation->price ?>
        <?= $reservation->start_date ?> - <?= $reservation->end_date ?>
    </div><!-- /.row -->
<? endforeach ?>
查看

<div class="row">
    <?= $reservation->name ?>
    <?= $reservation->price ?>
    <?= $reservation->start_date ?> - <?= $reservation->end_date ?>
</div><!-- /.row -->

- 

您的视图应该尽可能少使用PHP

控制器应该有
$data
声明,并且模型应该从数据库返回数据

您的for循环似乎有点不必要。你真的只需要一个“开始日期”和“结束日期”。您可以将其放入模型或控制器中,这取决于您是否希望在每次调用
get\u reservations
时返回这些值

控制器

public function reservations()
{
    $this->load->model('admin_model');
    $data['reservations'] = $this->admin_model->get_reservations();
    $this->load->view('view_reservations', $data);
}
public function reservations()
{
    $this->load->model('admin_model');
    $reservations = $this->admin_model->get_reservations();

    foreach ($reservations as $reservation)
    {
        $data['reservation'] = $reservation;
        $this->load->view('view_reservation', $data);    
    }
}
型号

function get_reservations()
{
    $reservations = $this->db->get('t_reservation')->result();

    foreach ($reservations as $reservation)
    {
        $reservation->start_date = date("d-m-Y", strtotime($reservation->date));
        $reservation->end_date = date("d-m-Y", strtotime(date("Y-m-d", strtotime($reservation->date)) . " +".$reservation->days." day"));
    }

    return $reservations;
}
查看 我已经编辑了您的视图,因为我猜您希望每个结果都在一个单独的行中

<? foreach ($reservations as $reservations): ?>
    <div class="row">
        <?= $reservation->name ?>
        <?= $reservation->price ?>
        <?= $reservation->start_date ?> - <?= $reservation->end_date ?>
    </div><!-- /.row -->
<? endforeach ?>
查看

<div class="row">
    <?= $reservation->name ?>
    <?= $reservation->price ?>
    <?= $reservation->start_date ?> - <?= $reservation->end_date ?>
</div><!-- /.row -->

- 

这确实更干净了,也是我想要的。非常感谢!这确实是更干净的方式,我希望它是这样的。非常感谢!这确实是更干净的方式,我希望它是这样的。非常感谢!这确实是更干净的方式,我希望它是这样的。非常感谢!