2012-05-02 4 views
0

上)メンバ関数getTitleName(に呼び出して、私は次のようなエラーがあります。ここではエラー:私はフォームを作成した非オブジェクト

Call to a member function getTitleName() on a non-object in C:\wamp\www\public_html\apps\frontend\modules\planbook\templates\_form.php on line 25 

は私のコードです:

<form method="post" enctype="multipart/form-data" action="<?php echo url_for((!isset($planbook) ? '@planbook_create' : '@planbook_update').(isset($planbook) ? '?id='.$planbook->getId() : '')) ?>"> 
    <table> 
    <tfoot> 
     <tr> 
     <td colspan="2"> 
      &nbsp;<a href="<?php echo url_for('planbook/index') ?>">Back to list</a> 
      <?php if (!$form->getObject()->isNew()): ?><?php endif; ?> 

      <input type="hidden" id="planbook_id" name="planbook[id]" value="<?php echo isset($planbook) ? $planbook->getId() : ' '?>" /> 
      <input type="submit" value="Save" /> 
     </td> 
     </tr> 
    </tfoot> 
    <tbody> 
     <tr> 
     <th> 
     <lable for="planbook_titlename"> Title</label> 
     </th> 
     <td> 
     <?php if(isset($editFormFields) && isset($editFormFields['titlename'])) :?> 
      <input type="text" id="planbook_titlename" name="planbook[titlename]" value="<?php echo isset($planbook) ? $planbook->getTitleName() : ''?>"> 
     <?php else: ?> 
      <?php echo $planbook->getTitleName() ?> 
     <?php endif; ?> 
     </td> 
     </tr> 
     <tr> 
     <th> 
      <label for="planbook_place">Place</label> 
     </th> 
     <td> 
      <?php if(isset($editFormFields) && isset($editFormFields['place'])) :?> 
      <input type="text" id="planbook_place" name="planbook[place]" value="<?php echo isset($planbook) ? $planbook->getPlace() : ''?>"> 
      <?php else: ?> 
      <?php echo $planbook->getPlace() ?> 
      <?php endif; ?> 
     </td> 
     </tr> 
    </tbody> 
    </table> 
</form> 

答えて

0

するTry is_object Doctrineは通常、そうIS_NULLまたはISSET何かが、最高のアイデア

+0

こんにちは、まだ同じ問題があります。 – user1343376

0

ではないかもしれないが返されます($のplanbook)

$planbook = $form->getObject(); 

そして! $planbook->isNew()ですべてのあなたのisset($planbook)を置き換える:あなたのエラーを解決するために、私はあなたがあなたのフォームの前に、この行を配置する必要がありますね。


しかし私は、フォームを作成する間違った方法を取っていると思います。

たとえば、この:

<?php if(isset($editFormFields) && isset($editFormFields['titlename'])) :?> 
    <input type="text" id="planbook_titlename" name="planbook[titlename]" value="<?php echo isset($planbook) ? $planbook->getTitleName() : ''?>"> 
<?php else: ?> 
    <?php echo $planbook->getTitleName() ?> 
<?php endif; ?> 

手動のことをする必要はありません、のような:

  • 、入力を表示
  • 、IDと名前を生成しますオブジェクトが存在する場合に値を設定する必要があるかどうかを決定する
  • など

すべてのものは、フォームで行われます

<?php echo $editFormFields['titlename']->renderRow() ?> 

してください、read the full doc related to the form。また、あなたのエラーのすべてのコードを私たちに与えることを忘れないでください。ここでは、部分テンプレートのみを提供します。

  • アクションについてはどうなりますか?
  • フォームクラス($formはどこから来ますか)はどうですか?
  • メインテンプレートはどうですか(あなたに私たちに部分的な部分を与えたので、この部分的な部分を含むテンプレート)?
+0

こんにちは、ありがとう、その問題を解決しました。しかし、私はフォームを提出しました。 500 |内部サーバーエラー| Doctrine_Connection_Mysql_Exception SQLSTATE [23000]:整合性制約違反:1452子行を追加または更新できません:外部キー制約が失敗しました( 'ned'.planbook'、CONSTRAINT' planbook_personal_id_personal_id' FOREIGN KEY( 'personal_id')REFERENCES' personal'( 'id')ON DELETE CASCADE)。このエラーは来ていた – user1343376

+1

これは他のエラーです、私たちはあなたのプロジェクトやモデルなどをすべて知っているわけではありません。あなたが見つけられない場合は、私たちにあなたを助けるために私達にすべての情報を与えてください。しかし** **してください、あなたのソリューションは動作しますが、私はそれを修正しようとすることなく新しいエラーが発生したと言うだけではありません。私たちは霊的ではありません! – j0k