I already missed one valid model association - has many through, and that
solved my issue. Thanks anyway for the reply!
On Monday, February 9, 2015 at 5:25:58 PM UTC, John Andersen wrote:
>
> Assuming you are using CakePHP 2.x
>
> It is a good idea to define a primary key in your HABTM table - in the
> books_users table (name should be alphabetic order, but you can deviate).
> Thus your table definition is:
> books_users
> id, book_id, user_id
>
> What is your comment table reflecting?
> 1) comments added to a book by a user?
> 2) comments added to a book_user?
>
> To me it sounds like you have implemented 2) - if that is so, please
> clarify your reason :)
>
> I would go with 1) - so that your comments table definition becomes:
> comments
> id, book_id, user_id, comment, ...
> where book_id is a reference to the books table and user_id is a reference
> to the users table.
>
> Enjoy, John
>
>
> On Friday, 6 February 2015 22:46:08 UTC+2, gt0p wrote:
>>
>> I am trying to bind 3 tables and I am having problems with proper
>> relations.
>> Table users (pk id), books (pk id), users_books (user_id, book_id),
>> comments (pk and foreign key book_id, user_id -> with reference to
>> users_books)
>>
>> Here are the models:
>>
>> Book
>>
>> public $hasAndBelongsToMany = array(
>> 'User' =>
>> array(
>> 'className' => 'User',
>> 'joinTable' => 'users_books',
>> 'foreignKey' => 'book_id',
>> 'associationForeignKey' => 'user_id',
>> 'unique' => true,
>> 'conditions' => '',
>> 'fields' => '',
>> 'order' => '',
>> 'limit' => '',
>> 'offset' => '',
>> 'finderQuery' => '',
>> // 'with' => 'UserBook'
>> ),);
>>
>> public $hasMany = array('Comment'=>array('className'=>'Comment'));
>>
>> Comment:
>>
>> public $belongsTo = array (
>> 'Book' => array (
>> 'className'=>'Book',
>>
>> )
>> );
>>
>>
>> When I try to save with the saveAll method I got:
>>
>> *Error: * SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot
>> add or update a child row: a foreign key constraint fails
>> (`metabook`.`comments`, CONSTRAINT `comments_ibfk_1` FOREIGN KEY
>> (`user_id`, `book_id`) REFERENCES `users_books` (`user_id`, `book_id`))
>>
>> I know that this is not according to the cakephp conventions, but what I
>> can do to bind those tables?
>>
>
--
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.