2012-04-01 8 views
0

Ich versuche, etwas zu schaffen, wie ich es in einem meiner Admin Ansichten getan haben:Html-Helfer postLink in CakePHP

<td class="actions"> 
    <form action="https://stackoverflow.com/users/delete/26" name="post_4f7825317b6b0" id="post_4f7825317b6b0" style="display:none;" method="post"> 
     <input type="hidden" name="_method" value="POST"> 
    </form> 
    <a href="#" onclick="if (confirm('Are you sure you want to delete # 26?')) { document.post_4f7825317b6b0.submit(); } event.returnValue = false; return false;"> 
     Delete 
    </a> 
</td> 

Mit dieser:

<?php 
    echo $this->Form->postLink(__('Delete'), array(
       'action' => 'delete', 
       $user['User']['id']), 
       null, 
       __('Are you sure you want to delete # %s?', $user['User']['id'])); 
?> 

ich es versuche, mit dem gleichen Code in einer anderen Ansicht und ich weiß nicht, warum ich diese nur erhalten:

<input type="hidden" name="_method" value="POST"> 
<a href="#" onclick="if (confirm('Are you sure you want to delete # %s?')) { document.post_4f782a44e9784.submit(); } event.returnValue = false; return false;"> 
    Delete 
</a> 

Warum ist das passiert, wenn ich den exakt gleichen co bin mit de um es zu generieren? Danke.

+0

Sind Sie sicher, '$ user' Variable ist gesetzt und enthält, was Sie denken, dass es tut? – JJJ

+0

Ja, ich bin mir sicher. – Alvaro

Antwort

-4

Sie haben das Formular nicht selbst erstellt, deshalb verwenden Sie im Wesentlichen Eingabefelder ohne Formular.

echo $this->Form->create(); 
+4

Das ist eigentlich falsch. $ this-> Form-> postLink() muss nicht in einem Formular sein. Eigentlich kann es nicht in einem Formular sein (siehe https://github.com/cakephp/cakephp/blob/master/lib/Cake/View/Helper/FormHelper.php#L1728). –

+2

Das ist so irreführend ... wie @tinytiger darauf hingewiesen hat, kann man kein Formular innerhalb eines Formulars haben. Dies wird die Dinge brechen. – Timber

+0

Diese Antwort ist kategorisch falsch und sollte gelöscht werden. – schnauss

0

Zuerst. Überprüfen Sie die CakePHP-Version.

<?php 
    echo $this->Form->postLink(__('Delete'), array(
       'action' => 'delete', 
       $user['User']['id']), 
       ['inline' => true], 
       __('Are you sure you want to delete # %s?', $user['User']['id'])); 
?>