I think you should put your code somewhere so we can take a look, otherwise
trying to guess what the problem is will take a while.
On Tuesday, January 13, 2015 at 4:02:56 AM UTC+1, Joe T. wrote:
>
> Wondering if someone can help me take a closer look at this... i'm still
> not having any luck & can't really get much forward progress until i
> understand this.
>
> If you need more information to determine suggestions, let me know. Any
> suggestions are appreciated.
>
> -joe
>
>
> On Tuesday, 30 December 2014 01:52:54 UTC-5, Joe T. wrote:
>>
>> i figured out part of my trouble, but the purpose of the original post
>> still remains.
>>
>> The parent record in Listings wasn't saving correctly because i didn't
>> have an `active` field in the form (*facepalm*). Corrected that. Still
>> having trouble with the date field, kinda frustrated there. But to the
>> point...
>>
>> When i save my data, i'm now getting a record in Listings. Yay! But the
>> associated data in ListingsAttrs is still not there. Boo!
>>
>> Current structure of ListingsAttrs POST data:
>> [listings_attrs] => Array (
>> [4] => Array (
>> [attr_id] => 4
>> )
>> [1] => Array (
>> [attr_id] => 1
>> [value] => Off-street
>> )
>> )
>>
>> Which now gives me this in the *$listing* Entity:
>> "listings_attrs": {
>> "4": {
>> "attr_id": "4"
>> },
>> "1": {
>> "attr_id": "1",
>> "value": "Off-street"
>> }
>> }
>>
>> This is progress! The associated data wasn't in previous debug data.
>>
>> So what am i still missing that it won't save that data? Remember,
>> `value` is optional to the data record, it's controlled by the UI. So
>> both of those records *should be* valid. Why then is neither of them
>> being saved?
>>
>> Any additional help here is appreciated.
>> -joe t.
>>
>>
>> On Monday, 22 December 2014 22:54:12 UTC-5, Joe T. wrote:
>>>
>>> Sorry this took several days to respond, i was sick all weekend, didn't
>>> get anywhere near my computer.
>>>
>>> i changed the names of the inputs from *listingsattrs* >>
>>> *listings_attrs* as you recommended (no clue how i missed that to begin
>>> with). My POST data now looks exactly as it did before, except for the name
>>> of that particular item. However, the log output for the $listing
>>> entity is still missing the associated ListingsAttrs data.
>>>
>>> The ListingsAttrs Entity didn't have a $_accessible array, so i added a
>>> default:
>>> $_accessible = [
>>> '*' => true
>>> ];
>>>
>>> The controller code looks like:
>>> $listing = $this->Listings->newEntity($this->request->data);
>>>
>>> /* i've also tried:
>>> $listing = $this->Listings->newEntity($this->request->data,
>>> ['associated' => ['ListingsAttrs']]);
>>> $listing = $this->Listings->newEntity($this->request->data,
>>> ['associated' => ['ItemAttrs']]);
>>> $listing = $this->Listings->newEntity($this->request->data,
>>> ['associated' => ['ListingsAttrs.ItemAttrs']]);
>>> $listing = $this->Listings->newEntity($this->request->data,
>>> ['associated' => ['ItemAttrs.ListingsAttrs']]);
>>> */
>>>
>>> if ($this->Listings->save($listing)) {
>>> // etc.
>>> }
>>> else {
>>> throw new Exception...
>>> }
>>>
>>> What else can i try? i appreciate the help.
>>> -joe
>>>
>>> On Friday, 19 December 2014 11:29:12 UTC-5, José Lorenzo wrote:
>>>>
>>>> You should post a property called listings_attrs, check your entity
>>>> $_accessible array to make sure the property is also writable with request
>>>> data.
>>>>
>>>> On Friday, December 19, 2014 6:29:43 AM UTC+1, Joe T. wrote:
>>>>>
>>>>> i've seen a couple similar threads about this, but not my exact
>>>>> problem.
>>>>>
>>>>> i'm trying to follow the guide here:
>>>>> http://book.cakephp.org/3.0/en/orm/saving-data.html#converting-request-data-into-entities
>>>>>
>>>>> and coming up short. *i'm not getting any errors* (except a date
>>>>> field that constantly fails if it has a value, separate issue)...so i
>>>>> have
>>>>> no idea what's happening to the data i submit, or why it isn't saved to
>>>>> the
>>>>> DB.
>>>>>
>>>>> My raw response data logged to Cake Debug is:
>>>>>
>>>>> Array (
>>>>> [title] => '123 Main St'
>>>>> [street] => '123 Main St'
>>>>> [lot_no] => 1
>>>>> [lat] =>
>>>>> [lng] =>
>>>>> [city] => 'Hometown'
>>>>> [county] =>
>>>>> [state] => 'MI'
>>>>> [zip] => '49000'
>>>>> [area] => 900
>>>>> [bedrooms] => 2
>>>>> [bathrooms] => 1
>>>>> [price] => 525
>>>>> [ready_date] =>
>>>>> [listingsattrs] => Array (
>>>>> [4] => Array (
>>>>> [id] => 4
>>>>> )
>>>>> [1] => Array (
>>>>> [id] => 1
>>>>> [value] => 'Off-street'
>>>>> )
>>>>> )
>>>>> [park_id] => 1
>>>>> [house_condition_id] => 3
>>>>> [house_style_id] => 2
>>>>> [term_id] => 2
>>>>> [info_body] => '<p>Live here. It's great!</p>'
>>>>> )
>>>>>
>>>>> i have tables *Listings*, *ItemAttrs*, and *ListingsAttrs*. In
>>>>> *ListingsTable*, the relationship is defined as:
>>>>> $this->addAssociations([
>>>>> 'belongsToMany' => [
>>>>> 'ItemAttrs' => [
>>>>> 'targetForeignKey' => 'attr_id',
>>>>> 'through' => 'ListingsAttrs',
>>>>> 'saveStrategy' => 'replace',
>>>>> ]
>>>>> ])'
>>>>>
>>>>> *Some* attributes are required to have a value when assigned to a
>>>>> Listing (or other parent object they can be assigned to with a similar
>>>>> relationship). When a requires-value attribute is selected for the (in
>>>>> this
>>>>> case) Listing, a text field is shown & marked as required. The value is
>>>>> stored in the *ListingsAttrs* record with the Listing ID and ItemAttr
>>>>> ID.
>>>>>
>>>>> When i submit the form, the correct attribute data is there. But it
>>>>> gets lost when i generate the Entity:
>>>>>
>>>>> $listing = $this->Listings->newEntity($this->request->data, [
>>>>> 'associated' => ['ListingsAttrs']
>>>>> ]);
>>>>>
>>>>>
>>>>> Log of *$listing*:
>>>>> {
>>>>> "title": "123 Main St",
>>>>> "street": "123 Main St",
>>>>> "lot_no": "1",
>>>>> "lat": null,
>>>>> "lng": null,
>>>>> "city": "Hometown",
>>>>> "county": null,
>>>>> "state": "MI",
>>>>> "zip": "49000",
>>>>> "area": 900,
>>>>> "bedrooms": 2,
>>>>> "bathrooms": 1,
>>>>> "price": 525,
>>>>> "ready_date": null,
>>>>> "park_id": 1,
>>>>> "house_condition_id": 3,
>>>>> "house_style_id": 2,
>>>>> "term_id": 2,
>>>>> "info_body": "<p>Live here. It's great!<\/p>\r\n"
>>>>> }
>>>>>
>>>>> i've tried creating the Listings entity without 'associated' at all,
>>>>> as 'associated' => 'ListingsAttrs', and 'associated' => 'ItemAttrs'
>>>>>
>>>>> i'm trying to understand this ORM, because it *looks* like it should
>>>>> be very automated & easy to use. (By comparison, has anyone here used
>>>>> ZF1's
>>>>> ORM? Yikes.) But i don't know what i'm doing wrong here. It *seems*
>>>>> like i'm following the guide, but i'm obviously mixing something up.
>>>>>
>>>>>
>>>>>
--
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.