main
デフォルトのモジュールであるというモジュールと、というモジュールがありますsong
。
main
モジュールの「追加フォーム」をモジュールに入れたいsong
です。
コンポーネントを使用する必要があるかどうか、フォームを処理する方法と場所がわかりません。
手伝っていただけませんか ?
main
デフォルトのモジュールであるというモジュールと、というモジュールがありますsong
。
main
モジュールの「追加フォーム」をモジュールに入れたいsong
です。
コンポーネントを使用する必要があるかどうか、フォームを処理する方法と場所がわかりません。
手伝っていただけませんか ?
ドキュメントを確認しましたか?特にドキュメントのこの部分は?
基本的な連絡先フォームを使用して、フォーム システムについて説明します。
actions.class.php
内)があります。main
contactSuccess.php
次に、フォームを表示するテンプレート ( )主な違いは、おそらく Song というモデルがあるため、( を使用して) 新しいモデルを作成する代わりに、SongForm を使用する必要があることですnew sfForm()
。この部分については、同じドキュメント ページで、アーティクル モデルのケースをカバーするモデルに基づくフォームの部分を参照できます。
編集:
ステップバイステップ:
あなたのmain/actions/actions.class.php
:
public function executeIndex($request)
{
$this->form = new SongForm();
if ($request->isMethod('post'))
{
$this->form->bind($request->getParameter('song'));
if ($this->form->isValid())
{
$song = $this->form->save();
$this->getUser()->setFlash('notice', 'Thank you, the song has been added');
$this->redirect('main/index');
}
}
}
テンプレートでは、次のようになりますmain/templates/indexSuccess.php
。
<?php if ($sf_user->hasFlash('notice')): ?>
<div class="flash_notice"><?php echo $sf_user->getFlash('notice') ?></div>
<?php endif ?>
<?php echo $form->renderFormTag('main/index') ?>
<table>
<?php echo $form ?>
<tr>
<td colspan="2">
<input type="submit" />
</td>
</tr>
</table>
</form>
これで完了です。
Jobeetチュートリアル全体を読むことを強くお勧めします。あなたは多くのことを学ぶでしょう。基本的に、ここで説明したことはすべてこのチュートリアルに含まれています。
sf_guard_user
フィールドについては、非表示として再定義してから、現在接続しているユーザーでデフォルト値を設定する必要があります。
新しいフォームを作成します。/lib/form/CustomSongForm.class.php
<?php
class CustomSongForm extends SongForm
{
public function configure()
{
parent::configure();
$this->widgetSchema['sf_guard_user_ud'] = new sfWidgetFormInputHidden();
}
}
次に、あなたが言ったように、デフォルトを定義できます:
}$this->form->setDefault('sf_guard_user_id', $this->getUser()->getId());