I'm also new to SF and struggled with this.

My solution was a combination of javascript and php code.  Hopefully the
example code fragments are helpful for you.
Basically, my javascript updates the readonly field rather than the user.
 - Michael

[_form.php]
    echo $form['receipt_amount']->renderRow(array('readonly'));
   . . .
    echo $purchase['fee_name']->renderRow(array('onblur' =>
'UpdateFeeAmt();'));

[...Form.php]
    public function getJavascripts()
    {
      return array(
          '/js/transaction_receipt.js'
      );
    }

On Sun, Sep 5, 2010 at 9:27 PM, Marco Rocci <marco.ro...@gmail.com> wrote:

> Symfony 1.4
> Doctrine
> admin backend application
>
> With this simplified schema:
>
> Product:
>  columns:
>    code:       { type: string(10)   }
>    name:       { type: string(100)  }
> DeliveryRow:
>  columns:
>    product_id: { type: integer      , notnull: true }
>    qty:        { type: decimal(8,2) }
>  relations:
>    Product:    { onDelete: RESTRICT , local: product_id  , foreign:
> id, foreignAlias: DeliveryRows }
>
> I need to have the product name field on the delivery row form, but
> the user must not be able to change the product_id value.
>
> I tried this in several ways, but none with the desired result.
>
> 1) If I do nothing, I get a product combo in the form. It correctly
> shows the product name, but I cannot put the widget in readonly mode.
> I can disable it, but this doesn't work, as the validation fails on
> save... missing product_id.
>
> 2) I tried a readonly text input widget. That works quite well for the
> created_at and updated_at fields... but not in this case. If I use it
> for the product_id field, it will show the id, and not the product
> name. I tried setting it on product_name, product and many other
> variations, but it either doesn't work, or I haven't found the correct
> way to use that... I just get an empty readonly text input field.
>
> 3) I tried a custom field _readonly_product_name, defined in the
> generator.yml. I wrote a getReadonlyProductName method in the model.
> Again, I just get an empty readonly text input field.
>
> 4) I tried using a partial template field. I read that partials gain
> automatic access to the current object... so I tried referencing
> something like $deliveryRow->getProduct()... $deliveryRow-
> >getProduct()->getName()... and many others... I just got a bunch of
> undefined variable errors.
>
> 5) As a last resort, I was thinking I could embed a special product
> form in the delivery form, with just the product name field in
> readonly. I haven't tried this one yet, as it seems a bit more
> complicated... embedded forms just don't look too right, and I'd have
> to work on it a bit to make it look like a field in delivery row main
> form.
>
> But I mostly think I just missed something... it wouldn't seem to be
> that difficult. Any ideas or pointers (tutorials, howtos)?
>
> TIA and regards,
> Marco Rocci
>
> --
> If you want to report a vulnerability issue on symfony, please send it to
> security at symfony-project.com
>
> You received this message because you are subscribed to the Google
> Groups "symfony users" group.
> To post to this group, send email to symfony-users@googlegroups.com
> To unsubscribe from this group, send email to
> symfony-users+unsubscr...@googlegroups.com<symfony-users%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/symfony-users?hl=en
>

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en

Reply via email to