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 [email protected].
To post to this group, send email to [email protected].
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