CodeIgniterを使用してサイトを開発していますが、 "Fat Model/Skinny Controller"パラダイムを遵守しようとしていますが、フォームを含むページについてはいくつか問題があります。いくつかの入力。私のビューのCodeIgniter:入力が多いフォームのコントローラ構造
$this->data['address1'] = array(
'name' => 'address1',
'id' => 'address1',
'type' => 'text',
'class' => 'field text addr',
'tabindex' => '10',
'value' => $this->form_validation->set_value('address1'),
'placeholder' => 'Street Address'
);
$this->data['address2'] = array(
'name' => 'address2',
'id' => 'address2',
'type' => 'text',
'class' => 'field text addr',
'tabindex' => '11',
'value' => $this->form_validation->set_value('address2'),
'placeholder' => 'Address Line 2',
);
$this->data['city'] = array(
'name' => 'city',
'id' => 'city',
'type' => 'text',
'class' => 'field text addr',
'tabindex' => '12',
'value' => $this->form_validation->set_value('city'),
'placeholder' => 'City'
);
$this->data['state'] = array(
'name' => 'state',
'id' => 'state',
'class' => 'field addr',
'tabindex' => '13',
'value' => $this->form_validation->set_value('state'),
'label' => array('class' => 'desc')
);
$this->data['zip'] = array(
'name' => 'zip',
'id' => 'zip',
'type' => 'text',
'class' => 'field text addr',
'tabindex' => '14',
'maxlength' => '20',
'value' => $this->form_validation->set_value('zip'),
'placeholder' => 'Zip/Postal Code'
);
$this->data['country'] = array(
'name' => 'country',
'id' => 'country',
'class' => 'field addr',
'tabindex' => '15',
'value' => $this->form_validation->set_value('country')
);
パート:次のコードは、私は(私は、フォームの入力とその属性を定義しています)私のコントローラの
パートアドレスフィールドに入力を定義するために使用しているものです(マイナスすべてのHTMLは、フォーム入力を配置する):
<?php
echo form_open("address/add");
echo form_input($address1);
echo form_input($address2);
echo form_input($city);
$options = array();
$options[''] = 'State/Province/Region';
foreach($province_options AS $prov)
{
$options[$prov->id] = $prov->province;
}
echo form_dropdown('state',$options,'',$state);
echo form_input($zip);
$options = array();
$options[''] = 'Country';
foreach($country_options AS $cnt)
{
$options[$cnt->id] = $cnt->country;
}
echo form_dropdown('country',$options,'',$country);
echo form_submit('submit', 'Submit & Continue');
echo form_close();
?>
私のコントローラが過度に冗長ですが、私は選択肢が私を表現するのに必要な情報を整理する方法についてはどのようになるかを考えることができないように私は感じますフォームヘルパーを使用してfor私の視点ではm個の入力があります。これは正しいことですか、よりよいアプローチがありますか?
生のHTMLの場合+1(30分前に夕食が中断されるまで似たような回答を投稿していました)が、あなたが投稿したコードブロックについては "愚かな"ものは表示されません。説明できますか? –
@MadM質問に答えるために、私は個人的にvarを型キャストする際にポイントを見ないで、値を入力してください。これはクラス内でOKですが、これはメソッド内のtmp配列です(BTWはPHP6または5.4のwhitversに感謝します) 、アプローチは健全かもしれませんが、読みやすさのために私は間違っていると思います。 – Philip
さて、* 2番目の* $ options = array();がなければ、最初のものからの値がこぼれるでしょう(おそらく別のvar名を使うべきでしょう)。私はあなたの意味を理解していますが、私はまだそれが良い習慣だと思っており、「事故」を避けるために何が起こっているかを非常に明確にしています。 –