function add() {
     if (!empty($this->data)) {
            //********************You mean this ,right?
******************************
            $this->data['Post']['user_id']=$this->Auth->user('id');
            //
***************************************************************************

                        $this->Post->create();

                        if ($this->Post->save($this->data)) {
                                $this->Session->setFlash(__('The post has been 
saved', true));
                                $this->redirect(array('action' => 'index'));
                        } else {
                                $this->Session->setFlash(__('The post could not 
be saved. Please,
try again.', true));
                        }
                }
        }
I had no idea this was even possible. Thank you so much

P.S. I'm really sorry for causing you so much trouble

On 12 mayo, 18:41, dreamingmind <[email protected]> wrote:
> To avoid putting the user id on the form in a hidden field, couldn't
> you just wait for the add action to receive the POST data, then get
> the user id from auth->user('id') and add that to the POSTed data
> array before saving?
>
> In that way, you would never have to worry about verifying that the id
> value that came back with the form had not been changed.
>
> Regards,
> Don
>
> On May 12, 3:43 pm, Alonso <[email protected]> wrote:
>
>
>
>
>
>
>
> > Yes, that's exactly what I wanted, I needed to  "pre-set" the content
> > of the field and to avoid showing a select with  all the registered
> > users when adding a new post(views\posts\add.ctp), I opted for
> > creating  a private function , _usersUserid() , in the
> > app_controller.php , that returns the user_id of  the current  logged-
> > in user
>
> > *************app_controller.php****************
>
> >    function _usersUserid(){
> >          $users_userid=0;
> >          if ($this->Auth->user()){
> >             $users_userid=$this->Auth->user('id');
> >          }
> >          return $users_userid;
> >     }
> > which  I then send  to the "add" view
> > function beforeFilter() {
> >         //some other code
> >         $this->set('users_userid',$this->_usersUserid());
> >   }
>
> > *************Add View (views\posts\add.ctp) ****************
> > Where in order to know which user registers the new post , I've
> > created a new input  hidden field to store the user_id
> >         <?php
> >                //echo $this->Form->input('user_id');
>
> >                 echo $this->Form->input('user_id',array('type' => 'hidden',
> >                                           'value' => $users_userid ));
>
> >                 echo $this->Form->input('title');
> >                 echo $this->Form->input('body');
> >         ?>
>
> > and with this everything works fine, but I'm not so sure if this is
> > the best solution. what do you think??
>
> > thanks in advance
>
> > P.S.  Sorry for my English
>
> > On 12 mayo, 10:54, dreamingmind <[email protected]> wrote:
>
> > > It sounds like you want to pre-set the content of the field? That
> > > would be the 'value' property.
>
> > > $form->input->('myfiled', array('value' => 'This will show as the
> > > fields starting content'));
>
> > > Regards,
> > > Don
>
> > > On May 12, 6:31 am, Alonso <[email protected]> wrote:
>
> > > > you're right,there is an array of users ($users), but I'm afraid I
> > > > haven't explained myself well, what I'd like to know is if it's
> > > > possible to display a constant string using input()? because every-
> > > > time I try to do this, the string is displayed, but as a label.
>
> > > > P.S. I did try what you told me about  placing array('type' => 'text')
> > > > as the
> > > > second argument of the input method, but it only forces the control to
> > > > be a input text
>
> > > > On 11 mayo, 20:38, Miles J <[email protected]> wrote:
>
> > > > > Theres some magic that happens. If you have an ID field (user_id), it
> > > > > will usually be a select. If you set a variable called $users to the
> > > > > view, that input field will populate with that data.
>
> > > > > You can overwrite that by just placing array('type' => 'text') as the
> > > > > second argument of the input method.
>
> > > > > On May 11, 10:54 am, Alonso <[email protected]> wrote:
>
> > > > > > Hi, folks.
> > > > > > I'm starting with CakePHP and after reviewing this tutorial 
> > > > > > (http://book.cakephp.org/view/1543/Simple-Acl-controlled-Application
> > > > > > )  and also after having  used the "cake bake" command to generate 
> > > > > > my
> > > > > > models,
> > > > > > controllers and views , everything is fine, but when I visit the
> > > > > > Post's add view (views \ posts
> > > > > > \ add.php), I find that instead of showing a input text for the
> > > > > > username, it shows a select with all the usernames.
>
> > > > > > this is the line in  the Post's add view that show the select.
>
> > > > > >     echo $this->Form->input('user_id');
>
> > > > > > Although I know how to display only the username of the currently
> > > > > > logged-in user,  I don't know how to control the content to show in
> > > > > > $this->Form->input()  because if I use a variable that is not part 
> > > > > > of
> > > > > > the "Post" model , it's shown , but as the label for the input.
>
> > > > > > Have you any idea how to solve this??

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to