Hi,

To avoid the "Column 'xxx' in where clause is ambiguous" error when making 
queries involving multiple tables sharing the same name for a given column, 
I now systematically include $this->alias() in where conditions :

$table->find()->where([$table->alias() . '.foo' => 'bar']);


Is this considered a good practice? 

For some reasons I ignore, doing so leads to an error when using update 
instead of find for tables that contains an underscore. Example:

$table = TableRegistry::get('BlogPosts');
$table->updateAll(
    [$table->alias() . '.title' => 'new title'],
    [$table->alias() . '.id'    => 1]
);

will throw the error:
Column not found: 1054 Unknown column 'BlogPosts.id' in 'where clause'

for the prepared request:
UPDATE blog_posts SET BlogPosts.title = :c0 WHERE BlogPosts.id = :c1

Is this a cakephp 3 bug? Or is it me who is misusing $table->alias()?

Thx!


-- 
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 cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to