Whichever method you use (see later notes) $title is an array. To see it's
structure, type this immediately after the find:
die(debug($title));
That prints $title to screen, and I'm guessing it will look something like this:
Array(
['Project' ] => Array(
['title'] => value
[fieldname] => value
repeat...
)
)
So to get the actual title of the Project you change your code to:
$this->Session->setFlash(__("Project $title['Project']['title'] deleted"));
Notes: your find methods aren't quite right:
$title = $this->Project->read('title'); should be $title =
$this->Project->read(null, $id); (where $id is the id of the Project you want
to read)
$title = $this->Project->find('first', array('fields' =>
array('Project.title'), 'conditions' => array('Project.id' => $id))); <= this
is the way to go
$title = $this->Project->query("SELECT `title` FROM `Projects` WHERE
`id`=$id"); <= the query method is for last-ditch-all-hope-is-lost cases only
Bear in mind that if you've just deleted the Project none of those methods will
return an results, so the $title array will be empty. Presumably you're doing
the find before the delete.
If you only want to get a single field (rather than a whole record) consider
this instead:
$title = $this->Project->field('title', array('Project.id' => $id)); -- then
$title will be equal to the title of your project (i.e. it's not an array).
Jeremy Burns
Class Outfit
http://www.classoutfit.com
On 18 Oct 2012, at 10:12:42, Cody Sortore <[email protected]> wrote:
> Okay, I'm a bit of a noob, but I've been messing with this all night and
> cannot figure it out. I've had this problem before, but just figured out
> what my problem is, and although this particular issue isn't pressing,
> because I plan to use a similar item in the future I would like to understand
> what I'm missing here.
>
> I'm looking for a way to read a single item from the database, I can pass it
> to the view rather easily, but reading it in the same controller is
> confounding me.
>
> I've tried:
>
> $title = $this->Project->read('title');
> $title = $this->Project->find('first', array('fields' =>
> array('Project.title'), 'conditions' => array('Project.id' => $id)));
> $title = $this->Project->query("SELECT `title` FROM `Projects` WHERE
> `id`=$id");
>
> All I'm trying to do is display a message that says "Hey you deleted this
> project" later I have
>
> $this->Session->setFlash(__("Project $title deleted"));
>
> However, when the message flashes all I see "Project Array deleted" with all
> three examples. I understand what it's doing... I just don't understand
> why... how do I select the actual "title" from the array, instead of the
> entire array?
>
> Using CakePHP 2.x if it makes a difference in this instance.
>
>
> --
> 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 post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>
>
--
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.