Skip to content
This repository has been archived by the owner on Jan 29, 2020. It is now read-only.

SQL column alias bug #317

Open
plasid opened this issue May 10, 2018 · 4 comments
Open

SQL column alias bug #317

plasid opened this issue May 10, 2018 · 4 comments

Comments

@plasid
Copy link

plasid commented May 10, 2018

....$select...->join('vendors', 'vendors.id = campaigns_vendors.vendor_id', ['vendor_id'=>'id', 'vendor_daily_limit'=>'daily_limit'], $select::JOIN_LEFT)

When I query this select object I get the following error: "Not a valid magic property for this object"
When I rename the column alias to anything else but 'vendor_daily_limit' the error goes away.
When I print the produced SQL and run it via phpMyadmin or Bench then the query executes perfectly.

Very bizarre error and no indication of what is causing it.

@tptrixtop
Copy link
Contributor

tptrixtop commented May 10, 2018

I have no luck to reproduce that error on my local env)

Could you please add more information, may be table structure or scope code ?)

@samsonasik
Copy link
Contributor

you should can do something like this:

use Zend\Db\Sql\Predicate\Expression;

$select->join(
     'vendors', 
     'vendors.id = campaigns_vendors.vendor_id', 
     [
         'vendor_id'          => new Expression('vendors.id'),
         'vendor_daily_limit' => new Expression('vendors.daily_limit'),
      ],
      $select::JOIN_LEFT
);

@plasid
Copy link
Author

plasid commented May 13, 2018

It turns out I was looking at the wrong code.
The error "Not a valid magic property for this object" is produced when you call a non-existing method on the Sql object i.e. $sql->join(....)->equalTo(....) - equalTo is a method of Where and not Sql, since ZF uses overloading for this, the error message is not obvious.
A better message would be something like: "method equalTo not defined for Sql"

Sorry for wasting your time.

@michalbundyra
Copy link
Member

This repository has been closed and moved to laminas/laminas-db; a new issue has been opened at laminas/laminas-db#51.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants