Ok, I agree with you, in both points!

Thanks for your attention.


Em sexta-feira, 1 de agosto de 2014 11h52min22s UTC-3, José Lorenzo 
escreveu:
>
> I would suggest not breaking your forms across multiple blocks... and 
> don't think there will be a change around that in the FormHelper because of 
> the order the views are loaded when using blocks.
>
> On Friday, August 1, 2014 4:35:03 PM UTC+2, Tiago Barrionuevo wrote:
>>
>> In this case if I have to move the Form->create() out of this view I'll 
>> be doing code duplication in every form.
>>
>> The solution I found was create a method "setContext($context)" in a 
>> inherited Form helper to initialize before the Form->input() in the view 
>> block.
>>
>> Is there any chance this become functional this way in the future?
>>
>>
>> Em quinta-feira, 31 de julho de 2014 08h58min56s UTC-3, Tiago Barrionuevo 
>> escreveu:
>>>
>>> Yes, it returns an entity. I can simplify a little more:
>>>
>>> <div> 
>>>   <h2><?php echo 'Test Cases - VIEW BLOCK'; ?></h2> 
>>>    <div class="container"> 
>>>     <?php 
>>>       echo $this->Form->create($test); 
>>>          echo $this->fetch('cadastro_data'); 
>>>        echo $this->Form->end(); 
>>>     ?> 
>>>   </div> 
>>> </div>
>>>
>>> After some debugging I guess I found the problem!
>>> Cause "$this->Form->create($test)" is in other view that the " 
>>> $this->Form->input(...);", the Form->inputs are processed before the 
>>> Form->Create and it has no entity yet! 
>>>
>>>
>>> Em quinta-feira, 31 de julho de 2014 08h28min13s UTC-3, José Lorenzo 
>>> escreveu:
>>>>
>>>> What does $this->get('test') return? Is it an entity?
>>>>
>>>> On Thursday, July 31, 2014 3:47:47 AM UTC+2, Tiago Barrionuevo wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I'm trying to build a form, with a CakePHP 3 application, using view 
>>>>> blocks but I can't get it to work. It seens that the Form->create() 
>>>>> doesn't 
>>>>> find the model.
>>>>> I build a simple form to test it (controller Tests): 
>>>>>
>>>>>
>>>>> src/Template/Tests/view_block.ctp
>>>>>
>>>>> <?php
>>>>> $this->set('cadastro_title', $this->get('search_modulename') . ' - 
>>>>> VIEW_BLOCK');
>>>>> $this->set('cadastro_entity', $this->get('test'));
>>>>>
>>>>> $this->extend('/Common/cadastro_editor');
>>>>>
>>>>> $this->start('cadastro_data');
>>>>> ?>
>>>>>
>>>>> <fieldset>
>>>>>   <div class="row">
>>>>>     <?= $this->Form->input('id', array('label' => 'Id:' ));?>
>>>>>   </div>
>>>>>
>>>>>   <div class="row">
>>>>>     <?= $this->Form->input('name', array('label' => 'Name:' ));?>
>>>>>   </div>
>>>>>
>>>>>   <div class="row">
>>>>>     <?= $this->Form->input('result', array('label' => 'Result:' ));?>
>>>>>   </div>
>>>>> </fieldset>
>>>>>
>>>>> <?php $this->end(); ?>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------------
>>>>> src/Template/Common/cadastro_editor.ctp
>>>>>
>>>>> <div> 
>>>>>   <h2><?php echo $this->get('cadastro_title'); ?></h2> 
>>>>>  
>>>>>   <div class="container"> 
>>>>>     <?php 
>>>>>         echo $this->Form->create($this->get('test') ); 
>>>>>         //echo $this->Form->create($this->get('cadastro_entity') ); 
>>>>>  
>>>>>         echo $this->fetch('cadastro_data'); 
>>>>>  
>>>>>       echo $this->Form->end(); 
>>>>>     ?> 
>>>>>   </div> 
>>>>> </div>
>>>>>  
>>>>> ======================================
>>>>> The same form without view block works ok:
>>>>>
>>>>> <?php
>>>>> $this->set('cadastro_title', $this->get('search_modulename') . ' - 
>>>>> VIEW');
>>>>> ?>
>>>>> <div>
>>>>>   <h2><?php echo $this->get('cadastro_title'); ?></h2>
>>>>>
>>>>>   <div class="container">
>>>>>     <?php
>>>>>       echo $this->Form->create($this->get('test') );
>>>>>     ?>
>>>>>
>>>>>     <fieldset>
>>>>>       <div class="row">
>>>>>         <?= $this->Form->input('id', array('type'=>'text', 'label' => 
>>>>> 'Id:' ));?>
>>>>>       </div>
>>>>>
>>>>>       <div class="row">
>>>>>         <?= $this->Form->input('name', array('label' => 'Name:' ));?>
>>>>>       </div>
>>>>>
>>>>>       <div class="row">
>>>>>         <?= $this->Form->input('result', array('label' => 'Result:' 
>>>>> )); ?>
>>>>>       </div>
>>>>>     </fieldset>
>>>>>   </div>
>>>>> </div>
>>>>>
>>>>>
>>>>> Maybe I'm doing something wrong!
>>>>>
>>>>> Thanks in advance
>>>>>
>>>>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to