https://bitbucket.org/cautionbug/kodiak-investments
The stuff i'm having trouble with is behind an admin login. If you need
access, i'd prefer to send that privately.
Thanks for responding & being willing to take a look.
-joe
On Tuesday, 13 January 2015 03:38:36 UTC-5, José Lorenzo wrote:
>
> 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.