新的(相对)代码点火器:一些基本问题

时间:2012-04-05 19:57:49

标签: php codeigniter templates

我正在iPad上打字,如果简洁有点粗鲁,请原谅我。我的问题是:

视图中是否有简单的逻辑?例如,

<HTML>
<!-- ... Stuff
-->
<?php if($this->session->userdata('authorized'): ?>
<p>You are authorized</p>
<?php else: ?>
<p>You are not authorized</p>
<?php endif; ?>  // Question 1, is this the proper use of an endif:?
<!-- .. Stuff
->>
</HTML>

/* Starting to type the rest of message on my laptop.  Big thank yous to the coders on
   this site   who made my pc login transfer my unsaved, half typed iPad post */

以上只是代码中的剩余注释,这会使有限的php使用看起来很难看。我想让它被看到。

无论如何,问题#2:

在视图中使用这样的简单条件是否合适?

感谢您的阅读,并再次问候。

3 个答案:

答案 0 :(得分:1)

回答第一个问题: 这是endif的正确使用,所有这些都是codeigniter的有效和推荐方式。

就第二个问题而言,此方法可用于视图文件;但我建议在传递给页面的$data数组中使用它,这意味着它将作为$authorised访问;我这样说是因为它对前端设计师更有意义。

可以找到有关$data数组的信息here,只需导航到“向控制器添加逻辑”。

我希望这对你有所帮助。

答案 1 :(得分:1)

使用Language class存储“您已获得授权”和“您未获得授权”文字。您的会话是否在控制器中检查,并将正确的语言值传递给数据数组中的视图。

编辑:来自STONYFTW的其他问题:

应该采用什么方法来处理一些更复杂的代码,例如:?

    <?php if(!$this->session->userdata('isLoggedIn')): ?>
          <div id="login_form">
              <?php echo form_open('login/validateCredentials'); ?>
              <?php echo form_input('username', 'Username'); ?>
              <?php echo form_password('password', 'Password'); ?>
              <?php echo form_submit('submit', 'Log In'); ?>
              <div id="login_form_link_container">
                  <?php echo anchor('login/register', 'Register')." ".anchor('login/recover','Forgot Pass?'); ?>
              </div>
          </div>
   <?php endif; ?>

答案 2 :(得分:1)

我建议您在控制器中为每种情况使用不同的视图:

// In the controller
if($this->session->userdata('authorized')
  $this->load->view('not_autorized.php');
else
  $this->load->view('view.php');

因此,您可以获得清晰的代码视图。