помогите с функцией php-контроллера - PullRequest
0 голосов
/ 02 мая 2011

Я новичок в php и пытаюсь понять основы того, как мой сайт взаимодействует с базой данных. Может ли кто-нибудь быстро взглянуть и сказать мне, если он видит что-то не так со следующим кодом?

Вот функция в контроллере

class Spoonful extends C_Controller {


    public function index() {

        $collectives = $this - > get_mailchimp_collectives();
        $this - > data['collectives'] = $collectives;

        $this - > load - > view('spoonful');

    }

    private function get_mailchimp_collectives() {

        $constraints['select'] = 'collective.*, member.username, image.path AS avatar';

        $constraints['join'] = array(
        array('table' = > 'member', 'on' = > 'member.member_id=collective.member_id'), array('table' = > 'collective_tag', 'on' = > 'collective_tag.collective_id=collective.collective_id'), array('table' = > 'tag', 'on' = > 'tag.tag_id=collective_tag.tag_id'), array('table' = > 'image', 'on' = > 'image.image_id=member.avatar_id'));

        $constraints['where'] = array('tag.value' = > 'mailchimp');
        $constraints['order_by'] = array('collective.added' = > 'DESC');
        $constraints['limit'] = array('lower' = > 3);

        $collectives = $this - > db - > get('collective', $constraints);

        if (!empty($collectives['result_set'])) return $collectives['result_set'];


        return NULL;
    }



}

и вот фрагмент вида:

<!-- START COLLECTIVES -->
<?php if (!empty($collectives)){?>
    <?php foreach ($collectives AS $collective){?>
    <tr>
        <td bgcolor="#FFFFFF">

            <table cellpadding="0" cellspacing="0">
                <tr>
                    <td colspan="9" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/qc_table_top.gif"); ?>"  width="566" height="17"></td>
                </tr>
                <tr>
                    <td width="1" bgcolor="#D9D9D9" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/none.gif"); ?>" width="1" height="1"></td>
                    <td width="13" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/none.gif");?>" width="13" height="1"></td>
                    <td width="66" valign="top">
                        <table cellpadding="0" cellspacing="0">
                            <tr>
                                <td colspan="3" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/avatar_top.gif"); ?>" width="66" height="5"></td>
                            </tr>
                            <tr>
                                <td style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/avatar_right.gif"); ?>" width="5" height="45"></td>
                                <td style="font-size:0;line-height:0;"><a href="<?php echo site_url("people/{$collective['username']}"); ?>" target="_blank"><img src="<?php echo $collective['avatar']; ?>" width="46" height="45" border="0"></a></td>
                                <td style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/avatar_spike.gif"); ?>" width="15" height="45"></td> 
                            </tr>
                            <tr>
                                <td colspan="3" style="font-size;0;line-height:0;"><img src="<?php echo site_url("images/spoonful/avatar_bottom.gif"); ?>" width="66" height="5"></td>
                            </tr>
                        </table>                                                    </td>
                    <td width="15" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/none.gif"); ?>" width="15" height="1"></td>
                    <td width="338" valign="top">

                        <a href="<?php echo site_url("question/{$collective['collective_id']}/{$this->utilities->get_url_title($collective['title'])}"); ?>" style="text-decoration:none;"><font style="font-size:15px;line-height:18px;font-weight:bold;" color="#242424" face="Arial, Helvetica, sans-serif"><?php echo $collective['title']; ?></font></a><br>
                        <font style="font-size:11px;" color="#A5A5A5" face="Arial, Helvetica, sans-serif">by <a style="text-decoration:none;" href="<?php echo site_url("people/{$collective['username']}"); ?>"><font color="#2294B8"><?php echo $collective['username']; ?></font></a></font>                                                 </td>
                    <td width="30" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/none.gif"); ?>" width="30" height="1"></td>
                    <td width="81" valign="top">
                        <table cellpadding="0" cellspacing="0">
                            <tr>
                                <td style="font-size:0;line-height:0;"><a href="<?php echo site_url("question/{$collective['collective_id']}/{$this->utilities->get_url_title($collective['title'])}");?>"><img src="<?php echo site_url("images/spoonful/answer.gif"); ?>" width="81" height="27" border="0" alt="ANSWER"></a></td>
                            </tr>
                            <tr>
                                <td style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/none.gif"); ?>" width="1" height="8"></td>
                            </tr>
                            <tr>
                                <td width="81" align="center" style="text-align:center;"><a style="text-decoration:none;" href="<?php echo site_url("question/{$collective['collective_id']}/{$this->utilities->get_url_title($collective['title'])}");?>"><font style="font-size:11px;" color="#8E8E8E" face="Arial, Helvetica, sans-serif">View Answers</font></a></td>
                            </tr>
                        </table>                                                    </td>
                    <td width="21" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/none.gif");?>" width="21" height="1"></td>
                    <td width="1" bgcolor="#D9D9D9" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/none.gif"); ?>" width="1" height="1"></td>    
                </tr>
                <tr>
                    <td colspan="9" style="font-size:0;line-height:0;"><img src="<?php echo site_url("images/spoonful/qc_table_bottom.gif"); ?>" width="566" height="21"></td>
                </tr>
            </table>                                        </td>
    </tr>
    <tr>
        <td style="font-size=0;line-height:0;"><img src="<?php echo site_url("images/spoonful/none.gif"); ?>" width="1" height="9"></td>
    </tr>
    <?php }?>
<?php }?>

но по какой-то причине я просто не могу загрузить его. если я закомментирую строки:

if (!empty($collectives['result_set']))
   return $collectives['result_set'];

тогда представление загружается без данных, но когда я оставляю его, я получаю пустую страницу. любил бы некоторый совет.

Большое спасибо!

1 Ответ

2 голосов
/ 02 мая 2011

Ваши две проблемы, которые я вижу, в первую очередь, то, что контроллер Codeigniter называется CI_Controller, а не C_Controller (в версии, которую вы используете, по крайней мере), поэтому:

class Spoonful extends C_Controller {

должно быть

class Spoonful extends CI_Controller {

Кроме того, вы фактически не передаете данные в представление, вы делаете это со вторым параметром функции загрузки представления так:

   $this - > data['collectives'] = $collectives;

   $this - > load - > view('spoonful');

должно быть

   $this - > data['collectives'] = $collectives;

   $this - > load - > view('spoonful', $this->data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...