0

これは 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に進みます:

ビューでこのような単純な条件を使用することは適切ですか?

読んでくれてありがとう、そしてこんにちは。

4

3 に答える 3

1

最初の質問への回答:これは、の適切な使用法でありendif、codeigniterによるすべてが有効で推奨される方法です。

2番目の質問に関しては、このメソッドはビューファイルで使用できます。ただし$data、ページに渡される配列で使用することをお勧めします。つまり、$authorised;としてアクセスされます。フロントエンドの設計者にとってより理にかなっているので、これを言います。

$dataアレイに関する情報はここにあります。「コントローラーへのロジックの追加」に移動するだけです。

これがお役に立てば幸いです。

于 2012-04-05T20:08:24.537 に答える
1

Language クラスを使用して、「あなたは許可されています」および「あなたは許可されていません」というテキストを保存します。コントローラーでセッション チェックを行い、正しい言語値をデータ配列のビューに渡します。

編集: 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; ?>
于 2012-04-05T20:26:14.233 に答える
1

ケースごとにコントローラーで異なるビューを使用することをお勧めします。

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

したがって、クリーンなコードとビューが得られます。

于 2012-04-05T21:14:12.420 に答える