0

我试图了解如何在数据库查询没有返回结果时向用户显示一条消息。截至目前,我的查询工作正常。在这种情况下,消息变量的计数是 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');
4

2 回答 2

2

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

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

于 2013-08-07T19:18:41.367 回答
2

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

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

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

于 2013-08-07T23:55:23.543 回答