试图显示没有结果的消息

时间:2013-08-07 19:12:48

标签: php codeigniter

当我没有从数据库查询返回任何结果时,我试图理解该怎么做是向用户显示一条消息。到目前为止,我的查询工作正常。在这种情况下,计数消息变量为0然后我想要做的是显示一条消息,说明发件箱中没有个人消息。这包括不显示该表。

我想到的是将设置对象属性的行移动到下面的代码之上,然后设置两个单独的构建方法。一个用于何时有结果,一个用于何时没有。然后,如果没有结果,我会建立一个空白的视图,只是说一个随机消息。

对于模板库,我目前正在使用Phil Sturgeon的模板库。

https://github.com/jeffreydavidson/codeigniter-template

我正在寻求一些更好的可能性。有人可以帮忙吗?

$messages = $this->messages->get_many_by('sender_id', $this->session->userdata('user_id')); 
//vardump($messages); die();

if (count($messages > 0))
{
    $tmpl = array('table_open' => '<table class="table table-bordered table-condensed table-striped table-vertical-center checkboxs js-table-sortable">', 'row_start' => '<tr class="selectable">'); 
    $this->table->set_template($tmpl); 
    $this->table->set_heading('', 'To', 'Subject', 'Date', 'Actions');

    foreach ($messages AS $message)
    {
        $this->table->add_row('', $message->receiver_id, $message->subject, date('F d, Y', strtotime($message->date_sent)), '<a href="'. site_url() .'wrestling-manager/personal-messages/sent/delete/' . $message->id .'" class="btn-action glyphicons remove_2 btn-danger"><i></i></a>');
    }
}
else
{
    echo 'test';
}

$this->template
    ->title('Personal Messages Sent')->set_layout('control_panel_view')
    ->set_partial('sidebar', 'partials/sidebar')
    ->set('user_data', $this->user->with('character')->get($this->session->userdata('user_id')))
    ->build('sent_view');

2 个答案:

答案 0 :(得分:2)

if (count($messages > 0))应该是:if (count($messages) > 0)

不确定这是否会解决您的问题,但这将是一个正确方向的开始。

答案 1 :(得分:2)

建议您首先让应用程序在没有模板库的情况下运行 - 这将强制执行您需要的分离。您的控制器管理应用程序决策的流程,但应该没有关于显示的信息。因此,如果有个人消息的查询

  • 控制器接收搜索个人消息的请求
  • 搜索输入已过滤/搜索执行/返回结果
  • 控制器说 - 如果没有结果 - 那么转到无结果方法。也许控制器也传递了一个数据结构,其中包含用户的搜索词或其他相关信息。

如何显示结果 - 尽可能分开。所以即使控制器中有一些特定于模板的方法,它们也会被清楚地分开。回报:快速轻松地更改设计,模板等。